데이터 타입

리스펙스에서 쓰는 숫자, 문자열, 리스트, 불리언과 그 밖의 구체적인 값을 설명합니다.

이전 문서입니다. 현재 데이터 종류와 예제는 데이터와 복합 값에서 확인하세요.

이 페이지는 리스펙스의 입력 S-표현식 표면에서 다루는 기본 데이터들을 간단한 예제로 소개합니다. 리스펙스는 레퍼런스 인터프리터에서 직접 실행됩니다. 플레이그라운드에서 바로 시도해 보세요. 리스펙스 바우치는 규칙 입력과 영수증 기록을 묶을 때 같은 구체 값을 사용합니다.

읽으면서 바로 실험하려면 플레이그라운드를 새 탭에 열어두세요.

원시 타입 (Primitives)

리스펙스의 가장 기초적인 값들입니다.

숫자 (Numbers)

입력형은 정수/유리수/실수입니다.

LISPEX
30
19.99
-100
42/7

불리언 (Booleans)

진리값 리터럴은 #t, #f입니다.

LISPEX
#t
#f
(and #t #t)       ; ⇒ #t
(or #f #t)        ; ⇒ #t
(not #t)          ; ⇒ #f
(if #t "yes" "no") ; ⇒ "yes"

문자 (Characters)

단일 문자를 나타냅니다.

LISPEX
#\a
#\space
#\x03B1          ; 그리스 문자 α

문자열 (Strings)

큰따옴표로 묶인 문자 시퀀스를 나타냅니다.

LISPEX
"리스펙스 언어"
"안녕, 리스펙스! 👋"
""

"quote: \" \n tab: \t hex: \x41;" ; 이스케이프 예시

심벌 (Symbols)

이름 자체를 값으로 취급하는 식별자입니다(예약어는 바인딩 금지).

LISPEX
'apple
'Σ
'util.string

컬렉션 타입 (Collection Types)

리스트 (Lists)

순서가 있는 항목의 컬렉션입니다. (list ...) 구문으로 생성합니다. 빈 리스트는 () 입니다. 점리스트(dotted list)도 입력으로 허용됩니다.

LISPEX
(list)
(list 1 2 3 4 5)
(list "hello" "world" "lispex")
(list 1 (list 2 3) 4)
(1 2 3 . 4)     ; 점리스트 입력형

자주 쓰는 연산(첫 원소/나머지/길이, append, map/filter 등)은 표준 라이브러리에 있습니다.

벡터 (Vectors)

LISPEX
#(1 2 3)
#("a" "b" "c")

바이트벡터 (Bytevectors)

정수(0–255) 요소로 이루어진 바이트 배열입니다.

LISPEX
#u8(72 101 108 108 111)

인용 계열 (Quote family)

데이터 리터럴 구성을 위한 리더 축약을 제공합니다.

LISPEX
'x              ; ⇒ (quote x)
`(a ,x ,@ys b)  ; ⇒ (append (list 'a x) ys (list 'b))

함수 (Functions)

함수는 리스펙스에서 일급입니다. 익명 함수는 lambda, 이름 있는 함수는 define 설탕을 사용합니다.

LISPEX
(define (add a b) (+ a b))
(add 10 20) ; ⇒ 30
(lambda (n) (+ n 1)) ; 익명 함수 값