Programming/lisp2012. 12. 5. 23:18
'는 quote(인용)인데
함수적 언어인 lisp에서 함수를 쓰지 않고 list나 atom을 만드는데 사용한다.
> (quote a)
A
> 'a
A
> '(a)
(A) 
> (quote (a))
(A) 

>'(+ 1 2)
(+ 1 2)

위의 예제와 같이 (quote val)과 'val은 동일하며 atom을 나타낼때 사용된다.
atom으로 쓰려면 'val
list로 쓰려면 '(val)
로 사용하면 된다. 물론 함수역시 list의 atom으로서 인식이 되어질수 있다.



#'는 lisp 문서를 보다가 찾게 된 녀석인데
#' 는 (function val)과 같은 의미이고
함수 포인터라고 하기도 모호하고 아무튼.. 아직은 이해가 잘 안되는 녀석..
APPLY is also a Lisp primitive function.
APPLY takes a function and a list of objects as input. It invokes the specified function with those objects as its inputs.  The first argument to APPLY should be quoted with #’ rather than an ordinary quote; #’ is the proper way to quote functions supplied as inputs to other functions.  This will be explained in more detail in Chapter 7.
(apply #'+ '(2 3)) ⇒ 5
(apply #’equal '(12 17)) ⇒ nil 

The #’ (or ‘‘sharp quote’’) notation is the correct way to quote a function in Common Lisp.  If you want to see what the function CONS looks like in your implementation, try the following example in your Lisp:
> (setf fn #’cons)
#<Compiled-function CONS {6041410}>
> fn
#<Compiled-function CONS {6041410}>
> (type-of fn)
COMPILED-FUNCTION
> (funcall fn ’c ’d)
(C . D) 

> #'+
#<SYSTEM-FUNCTION +> 

> (function +)
#<SYSTEM-FUNCTION +> 

---2012.12.11

#는 벡터라고 한다.
[링크 : http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node30.html]

'Programming > lisp' 카테고리의 다른 글

lisp atom  (0) 2012.12.11
lisp tutorial  (0) 2012.12.06
클로져  (0) 2012.12.03
lisp는 리스트지 prefix 표기법이 아니다  (0) 2012.11.19
lisp 관련 책  (0) 2012.01.25
Posted by 구차니