이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제
만들면서 배우는 리스프 프로그래밍
Land of LISP
베스트
IT 모바일 top100 5주
가격
35,000
10 31,500
YES포인트?
1,750원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  해외배송 가능?
  •  문화비소득공제 가능

상세 이미지

책소개

목차

머리말
__ 어떤 점이 리스프를 그토록 멋지고 특이하게 만드는가?
__ 리스프가 그렇게 좋다면 왜 더 많은 사람이 쓰지 않을까?
__ 리스프는 어디에서 왔는가?
__ 리스프의 힘은 어디에서 왔는가?
SECTION I 리스프는 힘이다
1 리스프 시작하기
__리스프 변종
____두 리스프 이야기
____앞날이 기대되는 리스프
____스크립트 언어로 쓰이는 리스프
____안시 커먼 리스프
__CLISP로 시작하기
____CLISP 설치하기
____CLISP 실행하기
__이 장에서 배운 것
2 첫 리스프 프로그램 만들기
__내 숫자를 맞춰봐! 게임
__리스프에서 전역변수 선언하기
____big과 small 변수 선언하기
____전역변수를 정의하는 다른 함수
__리스프의 기본 수칙
__리스프에서 전역함수 정의하기
____guess-my-number 함수 정의하기
____smaller와 bigger 함수 정의하기
____start-over 함수 정의하기
__리스프에서 지역변수 정의하기
__리스프에서 지역함수 정의하기
__이 장에서 배운 것
3 리스프 문법으로의 여행
__문법과 의미
__리스프 문법의 기초
____심볼
____숫자
____문자열
__리스프는 코드와 데이터를 어떻게 구분하는가
____코드 모드
____데이터 모드
__리스트
____콘셀
____리스트 함수
____중첩 리스트
__이 장에서 배운 것
SECTION II 리스프는 대칭이다
4 조건에 따라 결정하기
__nil과 ()의 대칭
____비었다는 것은 곧 False와 같다
____()의 네 가지 가면
__조건문: if와 그 밖에 것
____한 걸음 나아가 if 이해하기
____if를 넘어서: 대안이 되는 when과 unless
____그 자체가 전부인 명령어: cond
____case로 분기하기
__조건 절에서 쓰는 요령
____숨은 조건 and와 or 사용하기
____참과 함께 다른 값도 반환하는 함수 사용하기
__비교하기: eq와 equal, 그리고 다른 것
__이 장에서 배운 것
5 텍스트 게임 엔진 만들기
__마법사의 어드벤처 게임
____게임 세계
____기본 요구사항
__관련 풍경 묘사하기
__장소 묘사하기
__경로 묘사하기
____유사인용 동작 원리
____한 번에 여러 경로 정의하기
__특정 장소의 물건 설명하기
____눈에 보이는 물건 나열하기
____눈에 보이는 물건 묘사하기
__전부 출력하기
__게임 세계 둘러보기
__물건 집기
__보관함 확인하기
__이 장에서 배운 것
6 리스프에서의 상호 작용: 입력과 출력
__글자의 출력과 입력
____화면에 출력하기
____사용자에게 Hello라고 말하기
____print와 read부터 시작하기
____사람의 방식으로 읽고 출력하기
__리스프에서 코드와 데이터의 대칭
__게임 엔진에 직접 만든 인터페이스 추가하기
____직접 만드는 REPL
____read 함수 직접 작성하기
____game-eval 함수 작성하기
____game-print 함수 작성하기
__화려해진 새 게임 인터페이스 시험하기
__read와 eval의 위험성
__이 장에서 배운 것
65 람다: 한 장을 차지할 만큼 중요한 함수
__람다가 하는 일
__람다가 왜 그토록 중요한가
__이 장에서 배운 것
7 기본 리스트 뛰어넘기
__이상한 리스트
____점 리스트
____짝
____원형 리스트
____연관 리스트
__복잡한 데이터 처리하기
____트리형 데이터 표현하기
____그래프 표현하기
__그래프 생성하기
____DOT 정보 생성하기
____노드 식별자 변환하기
____그래픽 노드에 이름표 추가하기
____노드의 DOT 정보 생성하기
____DOT 파일을 그림으로 바꾸기
____그래프를 그림으로 만들기
__무향 그래프 생성하기
__이 장에서 배운 것
8 예전의 웜퍼스는 잊어라
__대도 웜퍼스 게임
__'배배 꼬인 도시'의 에지 정의하기
____무작위로 에지 생성하기
____loop 명령어로 반복문 만들기
____섬으로 고립되는 것 방지하기
____'배배 꼬인 도시'의 마지막 에지 만들기
__'배배 꼬인 도시'의 노드 생성하기
__대도둑 웜퍼스 게임 초기화하기
__도시 지도 그리기
____부분적인 데이터로 도시 그리기
____도시 걸어다니기
__웜퍼스를 사냥하자!
__이 장에서 배운 것
9 고급 데이터 타입과 제너릭 프로그래밍
__배열
____배열 사용하기
____제너릭 할당문 사용하기
____배열 대 리스트
__해시 테이블
____해시 테이블 사용하기
____여러 개의 값 반환하기
____해시 테이블의 성능
____해시 테이블로 더 빨라진 '대도둑 웜퍼스' 만들기
__커먼 리스프의 스트럭처
____스트럭처로 작업하기
____스트럭처를 언제 써야 하는가
__포괄적으로 데이터 다루기
____차례로 나열된 값 다루기
____타입 단정 함수로 제너릭 함수 직접 작성하기
__오크 대전 게임
____플레이어 전역변수와 몬스터 전역변수
____주요 게임 함수
____플레이어 관리 함수
____플레이어 공격에 대한 헬퍼 함수
____몬스터 관리 함수
____몬스터
____대전을 벌이자!
__이 장에서 배운 것
SECTION III 리스프는 해킹이다
LOOP와 FORMAT: 리스프의 취약한 부분
10 LOOP 명령어로 반복문 짜기
__LOOP 매크로
____LOOP에 관련된 몇 가지 기법
____LOOP에서 궁금했던 모든 것
__LOOP를 써서 진화하자!
____게임 세계 속 식물의 성장
____동물 생성하기
____게임 세계의 하루
____게임 세계 그리기
____사용자 인터페이스 만들기
____진화의 과정을 지켜보자!
____진화에 대해 설명하기
__이 장에서 배운 것
11 FORMAT 함수로 글자 출력하기
__FORMAT 함수 해부하기
____목적지에 대한 매개변수
____제어 문자열 매개변수
____값에 대한 매개변수
__리스프 값을 출력하기 위한 제어 부분
__숫자의 출력 형식에 대한 제어 부분
____정수형 숫자를 출력하는 제어 부분
____실수형 숫자를 출력하는 제어 부분
__여러 줄의 결과값 출력하기
__출력 결과의 자리 맞추기
__제어 부분을 사용하여 리스트 순회하기
__데이터 테이블을 만드는 최고의 포맷 기법
__로봇을 공격하라!
__이 장에서 배운 것
12 스트림으로 작업하기
__스트림의 종류
____스트림의 종류
____스트림의 방향
__파일로 작업하기
__소켓으로 작업하기
____소켓 주소
____소켓 연결
____소켓을 통해 메시지 보내기
____자원 반환하기
__문자열 스트림: 괴짜 타입
____스트림을 함수로 보내기
____긴 문자열로 작업하기
____읽기와 디버깅
__이 장에서 배운 것
13 웹 서버를 만들어 보자!
__커먼 리스프에서 오류 처리하기
____예외 상황 만들기
____사용자 예외 상황 만들기
____특정 상황 가로채기
____예기치 못한 상황에서 자원 보호하기
__맨손으로 웹 서버 만들기
____웹 서버 동작 원리
____요청의 매개변수
____요청의 헤더 해석하기
____문자열 스트림으로 get-header 함수 테스트하기
____요청의 본문 해석하기
____마무리 단계: serve 함수
__동적 웹 사이트 만들기
____요청 처리기 테스트하기
____웹 사이트 열기
__이 장에서 배운 것
함수형 프로그래밍은 아름다워
SECTION IV 리스프는 과학이다
14 함수형 프로그래밍으로 리스프의 수준 높이기
__함수형 프로그래밍은 무엇인가?
__함수형 스타일로 작성된 코드 파헤치기
__고차 프로그래밍
____절차형 코드와의 코드 구성
____함수형 스타일 사용하기
____고차 프로그래밍으로 구제하기
__함수형 프로그래밍은 왜 안 되는가
__함수형 프로그래밍이 왜 멋진가
____함수형 프로그래밍은 버그를 줄인다
____함수형 프로그램은 더 작다
____함수형 코드는 더 우아하다
__이 장에서 배운 것
15 함수형 스타일로 작성된 "운명의 주사위" 게임
__운명의 주사위 게임 규칙
__운명의 주사위 게임 예
__운명의 주사위 게임 버전 1 구현하기
____전역변수 선언하기
____게임판 구현하기
____운명의 주사위 게임 규칙 분리하기
____게임 트리 생성하기
____차례 넘기기
____공격 이동 계산하기
____인접 영역 찾기
____공격
____병력 충원하기
____새로운 game-tree 함수 사용하기
____다른 사람과 맞붙기
__지능을 갖춘 적 만들기
____미니맥스 알고리즘
____미니맥스 알고리즘을 실제 코드로 구현하기
____인공지능 플레이어와 함께 하는 게임 반복문 만들기
____사람 대 컴퓨터 게임하기
__운명의 주사위 게임 속도 개선하기
____클로저
____메모이제이션
____꼬리 호출 최적화
____3×3 크기의 판에서 하는 게임의 예
__이 장에서 배운 것
16 리스프 매크로의 마법
__간단한 리스프 매크로
____매크로 확장
____매크로는 어떻게 변환되는가
____단순한 매크로 사용하기
__복잡한 매크로
____리스트를 나누는 매크로
____매크로 내 반복 실행 막기
____변수 충돌 방지하기
____재귀 매크로
__매크로: 위험성과 그 대안
__이 장에서 배운 것
17 특정 도메인 언어
__도메인이란 무엇인가?
__SVG 파일 작성하기
____tag 매크로로 XML/HTML 생성하기
____SVG용 매크로와 함수 만들기
____더 복잡한 SVG 예제 만들기
__마법사의 모험 게임을 위한 사용자 명령어 만들기
____새 게임 명령어 직접 만들기
____완성된 마법사의 모험 게임하기
__이 장에서 배운 것
18 지연 프로그래밍
__리스프에 지연 평가 추가하기
____lazy와 force 명령 만들기
____지연 리스트 라이브러리 만들기
____일반 리스트와 지연 리스트 사이의 변환
____지연 리스트에 대해 매핑하고 검색하기
__운명의 주사위 게임 버전 2 구현하기
__더 큰 게임판에서 인공지능 플레이어 작동시키기
____게임 트리 다듬기
____휴리스틱 적용하기
____큰 차이로 이기는가 vs 작은 차이로 이기는가
____알파-베타 프루닝
__이 장에서 배운 것
19 그래픽을 입한 웹 기반의 운명적 주사위 게임
__SVG 포맷으로 게임판 그리기
____주사위 그리기
____육각판 그리기
____게임판 그리기
__웹 서버 인터페이스 만들기
____요청 처리기 작성하기
____게임 웹 서버의 제약 사항
____새로운 게임 초기화하기
____승자 발표
____사람 플레이어 처리하기
____컴퓨터 플레이어 처리하기
____HTML 내에서 SVG 게임판 그리기
__운명의 주사위 버전 3 플레이하기
__이 장에서 배운 것
20 운명의 주사위 게임을 더 재미있게
__플레이어 수 늘리기
__주사위 굴리기
____기회 노드 만들기
____실제로 주사위 굴리기
____엔진에서 주사위 굴리기 코드 호출하기
____인공지능 개선하기
__운명의 주사위 충원 규칙 개선하기
__결론
에필로그
찾아보기

저자 소개

저자 : 콘래드 바스키
콘래드 바스키는 마이애미 대학교에서 MD 학위를 받았으며, 20년 가까이 프로그래밍을 해왔다. 알려지지는 않았지만 아타리 재규어용 게임을 개발했던 시기도 있었으며, 다양한 의료용 소프트웨어 프로젝트에 참여했다. 또한, 열성적인 만화가이기도 해서 유명한 리스프 에일리언 마스코트와 삽화를 이용한 다양한 자습서를 만들었다. 현재는 워싱턴 DC에 살면서 심장학 소프트웨어를 개발하고 있다.
역자 : 조태훈
카이스트 웹사이언스 공학과에서 석사 과정을 밟으며 새로운 웹의 미래를 그리고 있다. 미국 동부에서 웹 서비스 프로그래머로 일했고, 육군에서 소프트웨어 개발병으로 복무하며 다수의 인트라넷을 개발했다. 웹과 문화 콘텐츠 산업 전반에 관심이 많고, 현재는 소셜 네트워크 분석 기법에 대해 연구 중이다.

품목정보

발행일
2011년 11월 27일
쪽수, 무게, 크기
560쪽 | 988g | 183*235*35mm
ISBN13
9788979148756

책 속으로

대학생 시절, 교수님께서 리스프를 소개해 주셨습니다. 괄호로 이루어진 너무도 간결한 문법이라 프로그램을 짜는 데 매우 짧은 시간이 걸렸습니다. 그 후 리스프에 대해 더 알고 싶었지만 리스프 관련 책이 모두 예전에 출간된 것뿐이어서 아쉬워하던 중 이 책이 출간되어 무척 반가웠습니다. 현대의 많은 언어가 리스프의 아이디어를 가져와 사용하는데, 가비지 컬렉션, 동적 타입과 인터프리터와 같은 개념이 그 중의 일부입니다.
컴퓨터 과학계의 노벨상이라 불리는 "튜링 상"을 받은 과학자인 존 매카시가 창안한 언어이고, 많은 변종을 탄생시키며 오늘날에 이르렀습니다. 존 매카시는 인공지능 관련 논문을 많이 발표했는데, 컴퓨터 인공지능이 아이폰 4S에 탑재된 시리나 그 전신인 엘리자처럼 의미를 주고받을 수 있어야 한다고 생각했습니다. 인공지능 기술의 미래를 낙관적으로 바라보았죠. 2000년까지 스탠포드에 머무르며 관련 분야 활동을 지속했지만 안타깝게도 지난 2011년 10월 24일 숨을 거두었습니다(괄호 안에서 편히 쉬시길!). 최신 언어에 비하면 초라해 보이기도 하지만, 고차 함수를 사용하고 코드와 데이터를 자유자재로 넘나드는 고유의 특징은 여전히 빛을 발하는 리스프만의 색깔입니다(그 밖에 여러 가지가 있는데, 이 책을 보면서 배울 것입니다!).
이 책은 게임을 만들고 여러 각도에서 개선하며, 웹 서버에 이르기까지 다양한 예제를 통해 리스프를 배울 수 있는 책입니다. 아울러 인공지능, 기계 학습, 휴리스틱 같은 전문적인 개념도 익힐 수 있죠. 루비나 파이썬, PHP, 자바 등과 같이 전문서가 많지도 않고 개발자 커뮤니티도 활발하지 않지만, 리스프 언어 자체가 가지고 있는 매력은 그 모든 문제를 극복하고도 남으리라 생각합니다.
지난 몇 개월 동안 이 책을 번역하며 힘들 때도 있었지만 그보다는 즐거운 기억이 더 많았습니다. 내가 몰랐던 사실, 문제를 더 좋게 풀 수 있는 방법, 이것을 보며 독자가 느낄 재미 등을 상상하면서 즐겁게 번역했습니다. 번역을 마무리하는 시점에서 많은 분이 떠오릅니다. 먼저 리스프를 처음 소개해 주셨던 명지대학교 윤충화 교수님, 같은 연구실의 김상귀 박사님, 오랜 시간 같이 일했던 미국에 계신 양경호 박사님에게 감사 인사를 드립니다. 또한 고등학교 시절부터 컴퓨터 분야의 길을 응원해 주셨던 권종철 선생님, 대안 교육에 힘쓰고 계신 마리학교의 성국모 선생님, 늦은 시간까지 매일 연구에 매진하는 카이스트 웹사이언스 공학과 사람 모두에게 감사 인사를 드립니다. 그리고 한빛미디어 한동훈님의 배려 덕분에 더 수월하게 일할 수 있었습니다. 마지막으로 힘든 시기를 잘 참고 이해해 준 여자친구 K양에게도 고맙다는 말을 전합니다.

---옮긴이 서문 중에서

출판사 리뷰

이 책이 제시하는 핵심 내용
함수형 프로그래밍 언어 리스프(LISP) 입문서
국내 최초의 리스프 입문서

어떤 독자를 위한 책인가?
자기 계발에 관심이 많은 개발자
트위터, 페이스북 등에 쓰이는 함수형 프로그래밍 언어에 대해 학습해보고자 하는 개발자

책 소개
게임을 만들면서 개념을 학습하는 리스프 입문서


1958년에 개발된 리스프는 현재까지 쓰이는 함수형 언어이다. 리스프 이후로 함수형 언어는 다양한 변종이 등장했으나 기본 개념은 리스프를 계승하고 있다. 현대 언어는 익명 함수, 람다 연산, 메타 프로그래밍 등의 고급 프로그래밍 기법을 채택하고 있는데, 이는 함수형 언어의 특징을 차용한 것이다. 함수형 언어는 멀티코어 환경, 병렬 실행 환경에 강점이 있으며, 대용량, 대규모 분산 처리에 용이하다는 장점이 있어 인기를 얻고 있다. 실제로 구글의 대규모 분산 처리가 가능한 맵리듀스 알고리즘의 맵과 리듀스라는 용어도 리스프에서 유래했다. 리스프와 함수형 언어는 현대 컴퓨터 과학에 많은 영향을 끼치고 있으며 그 영향력은 점차 확대되고 있다. 또한, 함수형 언어의 학습은 프로그래밍에 대한 사고를 확장하게 하는 장점이 있어 프로그래머의 관심이 높아지고 있다.이제 리스프로 함수형 프로그래밍을 경험해보자.

[주요 내용]
o리스프 문법의 속성 완성 과정
o간결하고 우아한 함수형 프로그램 작성하기
o매크로 사용
oDSL(Domain-Specific Language) 만들기
o웹 서버 개발
o개발한 웹 서버를 이용한 웹 브라우저 게임 만들기
o운명의 주사위 게임 개발
o오크 배틀 게임 개발

뮤직 비디오
http://www.youtube.com/watch?v=HM1Zb3xmvMc&feature=player_embedded

리뷰/한줄평14

리뷰

8.4 리뷰 총점

한줄평

8.0 한줄평 총점

클린봇이 부적절한 글을 감지 중입니다.

설정