Racket

덤프버전 :

분류


#lang racket(println 'Hello, world!')


1. 개요
2. 역사
3. 특징
4. 예제
5. DrRacket
6. 외부 링크


1. 개요[편집]


LISP/Scheme 계열 언어 중 하나인 범용 프로그래밍 언어이다. Racket 은 프로그래밍 언어 생성, 구현, 및 디자인에 최적화 된 언어이다. Racket은 스크립팅, GUI 애플리케이션을 포함한 범용 애플리케이션 프로그래밍, 교육용 및 연구용 언어로 많이 쓰인다. 이 언어를 만든 사람 중 하나인 Robby Findler는 이걸 써서 Lecture에 쓰는 Slide를 만든다


2. 역사[편집]


1990년대 중반에 미국 라이스 대학의 교수 Matthias Felleison과 박사학위 학생들이었던 Matthew Flatt, Robby Findler, 및 Shriram Krishnamurthi가 교육용 언어로 쓰기 위해 Scheme을 기반으로 한 새 언어를 개발하기로 한다. 그리고 이 언어를 위한 전용 IDE인 DrRacket을 개발하게 된다. 처음 개발을 시작하고 만든 언어의 이름은 PLT Racket이었으나 2010년 6월에 현재 언어인 Racket으로 변경되었다.


3. 특징[편집]


Racket이 다른 LISP 계열 언어와 비교해서 다른 점은 특유의 유연한 매크로와 확장성이라고 할 수 있다. 이렇게 만들어진 모듈들은 Racket 기본 언어의 syntax를 override하게 된다. 일단 모듈은 그 자체가 한 언어로 볼 수 있으므로 그걸 #lang 이런 형식으로 가져와서 쓰게 될 경우 언어 자체를 바꿔버리는 게 가능하다. (극단적인 예시로, 이를 이용하여 racket에서 python 코드를 돌리게 해주는 모듈도 있다!)


4. 예제[편집]


문법 자체는 Common Lisp/ Scheme 등을 크게 벗어나지 않는다.
모든 언어는 일단 헬로월드부터 출력한다.
(print "Hello World\\n")

Common Lisp 에서의 함수를 정의하는 키워드인 defun 대신 define 을 쓴다.
피보나치 숫자를 리턴하는 재귀함수를 구현하면:
(define fib (n)
(cond
[(< n 2) 1]
[else (+ (fib (- n 1)) (fib (- n 2)))]))



5. DrRacket[편집]


Racket언어 전용 IDE로 처음엔 C++로 구현되었으나 버전 5.0부터는 Racket으로 다시 쓰여졌다.
윈도, macOS, Linux 등 거의 모든 플랫폼을 지원한다.
익숙해지면 꽤 쓸만하다. 특히 이 IDE의 가장 편한 점 중 하나는 괄호를 자동으로 닫아준다. Scheme계열 언어에서는 대괄호, 중괄호, 소괄호 모두가 쓰이는데 그게 여러개 쌓일 경우 불가능하다. 이렇게 써놓으니까 무슨 소린지 잘 모르겠지만 일단 써보면 안다 (...)


6. 외부 링크[편집]


라켓 공식 홈페이지 https://racket-lang.org/
파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-11-02 13:54:05에 나무위키 Racket 문서에서 가져왔습니다.