본문 바로가기

integer 및 float의 좌우 한계 값 CL-USER> (format t "~a (~r)~%" most-negative-fixnum most-negative-fixnum) -536870912 (minus five hundred and thirty-six million eight hundred and seventy thousand nine hundred and twelve) NIL CL-USER> (format t "~a~%~r~%" most-positive-fixnum most-positive-fixnum) 536870911 five hundred and thirty-six million eight hundred and seventy thousand nine hundred and eleven NIL ------------------------.. 더보기
setf / defun / let / let* 더보기
if / when / unless / cond / case / and / or / not + (predicates) ;;; (if (조건) 참-실행문 거짓-실행문) ;;; (if ) CL-USER 1 > (setf day-or-date 'monday) MONDAY CL-USER 2 > (if (symbolp day-or-date) 'day 'date) DAY CL-USER 3 > (setf day-or-date 9) 9 CL-USER 4 > (if (symbolp day-or-date) 'day 'date) DATE CL-USER 5 > (if (numberp day-or-date) 'day 'date) DAY ;;; (when (조건) 참-실행문들) ;;; (when ) ;;; (if nil) ;- i f 의 불필요한 부분 평가가 필요없을 때, ;- 단순히 참인 경우만 확인하여 실행하고자 할 때 CL-USER 14 .. 더보기
symbol-value / symbol-function / lambda 식 ;;; 함수명과 변수명이 같은 이름일 때 구분하여 지칭하고자 할 때 (symbol-value 'double) ;; symbol to the value (symbol-function 'double) ;; symbol to the function ;;; 함수 정의를 defun 아닌 setf로 정의할 수도 있다. (defun double (x) (* x 2)) (setf (symbol-function 'double) #'(lambda (x) (* x 2))) ;;; lambda 식 전체는 익명의 긴 함수의 이름이므로 리스트에서 맨 처음에 온다. ((lambda (x) (* x 2)) 3) ;;; ==> 6 더보기
defpackage / in-package / package-name (defpackage :retro-games (:use :cl :cl-who :hunchentoot :parenscript)) ;; 레트로게임스 패키지라고 한다. ;; 이 레트로게임스 패키지에는 네 개의 기능을 갖는 패키지를 감싼다. (in-package :retro-games) ;; 묶었던 패키지를 이제 불러들여서 사용하려는 중이다. ;; 이제 프람프트가 바뀐 패키지인 RETRO-GAMES>로 바뀌게 된다. (package-name *package*) ;; 현재의 패키지 이름을 알고 싶을 때 더보기