1. 개요
LISP/Scheme 계열 언어 중 하나인 범용 프로그래밍 언어이다. Racket 은 프로그래밍 언어 생성, 구현, 및 디자인에 최적화 된 언어이다. Racket은 스크립팅, GUI 애플리케이션을 포함한 범용 애플리케이션 프로그래밍, 교육용 및 연구용 언어로 많이 쓰인다. 이 언어를 만든 사람 중 하나인 Robby Findler는 이걸 써서 Lecture에 쓰는 Slide를 만든다
2. 역사
3. 특징
Racket이 다른 LISP 계열 언어와 비교해서 다른 점은 특유의 유연한 매크로와 확장성이라고 할 수 있다. 이렇게 만들어진 모듈들은 Racket 기본 언어의 syntax를 override하게 된다. 일단 모듈은 그 자체가 한 언어로 볼 수 있으므로 그걸 #lang ____ 이런 형식으로 가져와서 쓰게 될 경우 언어 자체를 바꿔버리는 게 가능하다. (극단적인 예시로, 이를 이용하여 racket에서 python 코드를 돌리게 해주는 모듈도 있다!)
4. 예제
문법 자체는 Common Lisp/ Scheme 등을 크게 벗어나지 않는다.
모든 언어는 일단 헬로월드부터 출력한다.
(print "Hello World\n")
Common Lisp 에서의 함수를 정의하는 키워드인 defun 대신 define 을 쓴다.
피보나치 숫자를 리턴하는 재귀함수를 구현하면:
(define fib (n)
모든 언어는 일단 헬로월드부터 출력한다.
(print "Hello World\n")
Common Lisp 에서의 함수를 정의하는 키워드인 defun 대신 define 을 쓴다.
피보나치 숫자를 리턴하는 재귀함수를 구현하면:
(define fib (n)
(cond
[(< n 2) 1]
[else (+ (fib (- n 1)) (fib (- n 2)))]))
[else (+ (fib (- n 1)) (fib (- n 2)))]))
5. DrRacket
6. 외부 링크
라켓 공식 홈페이지 https://racket-lang.org/