최근 수정 시각 : 2024-10-07 21:05:11

Racket


프로그래밍 사이트 선정 프로그래밍 언어 순위 목록
{{{#!wiki style="margin: 0 -10px -5px; word-break: keep-all"
{{{#!wiki style="display: inline-table; min-width: 25%; min-height: 2em;"
{{{#!folding [ IEEE Spectrum 2024 ]
{{{#!wiki style="margin: -5px 0"
<rowcolor=#fff> 스펙트럼 부문 상위 10개 프로그래밍 언어 직업 부문 상위 10개 프로그래밍 언어
1 Python 1 SQL
2 Java 2 Python
3 JavaScript 3 Java
4 C++ 4 TypeScript
5 TypeScript 5 SAS
6 SQL 6 JavaScript
7 C# 7 C#
8 Go 8 HTML
9 C 9 Shell
10 HTML 10 C++
}}}
}}}
}}}
[ Stack Overflow 2024 ]
[ TIOBE 2024 ]
||<tablewidth=100%><width=9999><-4><bgcolor=deepskyblue><tablebgcolor=#fff,#222> 2024년 8월 기준 검색어 점유율 상위 20개 프로그래밍 언어 ||
1 Python 11 MATLAB
2 C++ 12 Delphi / Object Pascal
3 C 13 PHP
4 Java 14 Rust
5 C# 15 Ruby
6 JavaScript 16 Swift
7 SQL 17 Assembly language
8 Visual Basic 18 Kotlin
9 Go 19 R
10 Fortran 20 Scratch
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px);"
{{{#!folding [ 21위 ~ 50위 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"
21 COBOL 36 Scala
22 Classic Visual Basic 37 Transact-SQL
23 LISP 38 PL/SQL
24 Prolog 39 ABAP
25 Perl 40 Solidity
26 (Visual) FoxPro 41 GAMS
27 SAS 42 PowerShell
28 Haskell 43 TypeScript
29 Dart 44 Logo
30 Ada 45 Wolfram
31 D 46 Awk
32 Julia 47 RPG
33 Objective-C 48 ML
34 VBScript 49 Bash
35 Lua 50 Elixir
}}}}}}}}} ||
[ PYPL 2024 ]

}}} ||
프로그래밍 언어 목록 · 분류 · 문법

#lang racket

(println 'Hello, world!')
라켓
Racket
파일:racket-logo.svg
개발자 Matthias Felleison
Mattew Flatt
Robby Findler
Shriram Krishnamurthi
최초 공개 1995년 1월 28일 ([age(1995-01-28)]년 전)
최신 버전 8.14 (2024년 8월 19일)
파일:홈페이지 아이콘.svg
1. 개요2. 역사3. 특징4. 예제5. DrRacket6. 여담7. 관련 문서8. 외부 링크

[clearfix]

1. 개요

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

패키지를 설치하려면 다음과 같이 명령어 raco를 이용한다.[1]
raco pkg install <pkg-name>

2. 역사

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

3. 특징

  • 라켓이 다른 LISP 계열 언어와 비교해서 다른 점은 특유의 유연한 매크로와 확장성이라고 할 수 있다. 이렇게 만들어진 모듈들은 라켓 기본 언어의 문법을 오버라이드 하게 된다. 일단 모듈은 그 자체가 한 언어로 볼 수 있으므로 그걸 #lang ____ 이런 형식으로 가져와서 쓰게 될 경우 언어 자체를 바꿔버리는 게 가능하다. 극단적인 예시로, 이를 이용하여 라켓에서 파이썬 돌리게 해주는 모듈도 있다![2]
  • 라켓은 확장자로 .rkt를 사용한다.

4. 예제

문법 자체는 커먼 리스프와 스킴 등을 크게 벗어나지 않는다. 모든 언어는 일단 헬로월드부터 출력한다.
(print "Hello World\\n")
커먼 리스프에서의 함수를 정의하는 키워드인 defun 대신 define을 쓴다. 피보나치 숫자를 리턴하는 재귀함수를 구현하면 아래와 같다.
(define fib (n)
  (cond
    [(< n 2) 1]
    [else (+ (fib (- n 1)) (fib (- n 2)))]))

5. DrRacket

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

6. 여담

  • 프로그래밍 언어론 교재 Essentials of Programming Languages 서문에 R5RS 호환되는 Scheme이면 실습이 가능하다고 안내되어 있으나 라켓의 eopl 패키지를 이용하면 실습을 진행하기 수월하다.[3]

7. 관련 문서

8. 외부 링크


[1] https://docs.racket-lang.org/pkg/getting-started.html [2] https://github.com/pedropramos/PyonR [3] https://docs.racket-lang.org/eopl/index.html

분류