Racket 친절한 입문

1 hour ago 1

Racket은 Lisp와 Scheme의 계보를 잇는 언어로, 코드와 데이터를 같은 구조로 다루며 문제에 맞는 언어와 문법까지 만들 수 있음 모든 코드는 (연산자 인수...) 형태의 표현식이며, 별도의 연산자 우선순위 없이 괄호가 프로그램 구조 전체를 나타냄 define과 lambda로 함수를 만들고, 리스트를 map·filter·foldl 같은 고차 함수로 처리하거나 재귀로 반복을 구성함 작은따옴표 '로 코드를 평가되지 않은 리스트 데이터로 바꾸고 eval로 실행할 수 있는 동형성(homoiconicity) 이 Lisp 매크로의 기반임 Racket의 define-syntax-rule을 사용하면 내장되지 않은 while 같은 구문을 직접 추가할 수 있어, 프로그램 작성을 넘어 언어 자체를 확장할 수 있음 Lisp에서 Racket까지 Lisp는 1958년 MIT의 John McCarthy가 만들었으며, 1957년의 Fortran 다음으로 오래된 현역 고급 언어임 Lisp에서 출발한 아이디어는 다음과 같음 Lisp를 위해 발명된 가비지 컬렉션 함수를 인수로 전달하는 일급 함수 Python·Node·Julia에서도 쓰이는 REPL 값을 반환하는 조건식 코드 자체가 언어의 자료 구조인 동형성 1970~1980년대에는 Symbolics와 LMI가 Lisp를 직접 실행하도록 설계한 Lisp Machines를 제작했으며, Lisp는 오랫동안 인공지능 분야의 중심 언어로 쓰임 Scheme은 1975년 Gerald Sussman과 Guy Steele이 만든 간결하고 수학적인 Lisp임 프로그래밍 교육에 널리 쓰였으며, *Structure and Interpretation of Computer Programs(SICP)*도 Scheme을 사용함 Matthias Felleisen의 그룹은 1995년 교육과 프로그래밍 언어 연구를 위한 PLT Scheme을 만들었고, 2010년 Racket으로 이름을 바꿈 Racket은 Scheme을 넘어 언어 지향 프로그래밍을 지원하며, 문제에 전용 언어가 필요할 때 직접 구축할 수 있도록 설계됨 오늘날의 Lisp 생태계 Clojure는 은행·항공사·스타트업의 프로덕션 환경에서 사용되며, 라틴아메리카 최대 디지털 은행 Nubank도 채택함 Common Lisp와 SBCL 컴파일러는 전문가 시스템, 과학 계산, 비행 계획에 쓰임 Google이 인수한 ITA Software의 기술은 Google Fli...

Read Entire Article