상위 질문
타임라인
채팅
관점

래킷 (프로그래밍 언어)

위키백과, 무료 백과사전

래킷 (프로그래밍 언어)
Remove ads

래킷(Racket, 이전 이름: PLT Scheme)은 리스프-스킴 계열의 범용 프로그래밍 패러다임이다. 설계적 목표 중 하나는 언어 제작, 설계, 구현의 플랫폼의 역할을 하는 것이다.[9][10] 이 언어는 스크립팅, 범용 프로그래밍, 컴퓨터 과학 교육, 연구와 같은 다양한 문맥에 사용된다.

간략 정보 패러다임, 계열 ...
Remove ads

플랫폼은 래킷 언어의 구현체(복잡한 런타임 시스템,[11] 다양한 라이브러리, JIT 컴파일러 등)를 제공하며 이 외에도 래킷 자체에서 작성되는 닥터래킷(DrRacket, 이전 이름: DrScheme)이라는 개발 환경도 함께 제공된다.[12] IDE 및 이와 동반되는 프로그래밍 커리큘럼은 프로그램바이디자인(ProgramByDesign) 아웃리치 프로그램에 사용되는데, 이는 컴퓨팅과 프로그래밍을 필수적인 교양 교육 과정의 일부로 전환하려는 시도이다.[13][14] 중심 언어는 확장 매크로 시스템으로 잘 알려져 있으며, 임베디드 및 도메인 특화 언어, 또 클래스모듈과 같은 언어 구성체, 각기 다른 시맨틱스를 갖춘 구별된 래킷 방언들의 제작을 가능케 한다.[15][16][17][18]

플랫폼 배포의 경우 GNU 약소 일반 공중 사용 허가서(LGPL) 라이선스 하에서 자유-오픈 소스 소프트웨어로 배포된다.[19] 공동체가 만든 확장 기능과 패키지들은 래킷의 중앙 패키지 카탈로그에 업로드된다.

Remove ads

코드 예제

다음은 사소한 헬로 월드 프로그램이다:

#lang racket
"Hello, World!"

이 프로그램을 실행하면 다음과 같이 출력된다:

"Hello, World!"

다음은 조금 덜 사소한 프로그램이다:

Thumb
이 프로그램의 결과. DrRacket에서 표시한 모습.
#lang racket
(require 2htdp/image)

(let sierpinski ([n 8])
  (if (zero? n)
    (triangle 2 'solid 'red)
    (let ([t (sierpinski (- n 1))])
      (freeze (above t (beside t t))))))

래킷 웹사이트에서 가져온 이 프로그램은 심도 8까지 네스트(nested)된 시에르핀스키 삼각형을 그린다.

#lang 디렉티브를 사용하여 각기 다른 래킷으로 소스 파일을 생성할 수 있다. 다음은 래킷의 정적 타이핑 변종인 Typed Racket에서의 팩토리얼 프로그램의 예시이다.

#lang typed/racket

(: fact (Integer -> Integer))
(define (fact n)
  (if (zero? n) 1 (* n (fact (- n 1)))))
Remove ads

각주

Loading content...

외부 링크

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads