> (funcall #’+ 3 4) ;; (+ 3 4)와 같음
7
> (apply #’+ 3 4 ‘(3 4))
14
> (mapcar #’not ‘(t nil t nil t nil))
(NIL T NIL T NIL T)
Funcall은 첫번째 파라미터로 함수이름이 오고 뒤에는 호출되는 함수의 파라미터로 쓰입니다.
Apply도 funcall과 유사합니다. 차이점은 마지막의 파라미터가 반드시 List여야 합니다. 리스트의 요소들이 함수의 파라미터로 사용됩니다.
mapcar의 첫번째 파라미터도 function인데 단 하나의 파라미터만 있는 function이여야 합니다. 두번째 파라미터부터는 첫번째 function의 파라미터로 해서 그 결과들을 List화해서 만듭니다.
Funccall과 apply는 보통 첫번째 파라미터가 variable입니다.
추후에 정렬함수에서 funcall이 비교함수를 호출하는 과정을 살펴봅시다.
Mapcar는 이름없는 함수(아래의 Lambda)를 loop 대신으로 쓸 수 있도록 합니다.
커먼리습과 오토리습은 같은 리습 계열이지만 내부 함수가 다른게 있습니다.
온라인 도움말에서 검색되지 않는것 보니 오토리습엔 포함되지 않는 순수 커먼리습 함수네요
오토리습은 그냥 (+ 3 4) 이런식으로 계산이 됩니다
그러면 오토리습에서는 funcall을 사용할수없는건가요?
안녕하세요 고서치입니다!
질문하신 내용 관련하여 검색해본 결과,
질문 내용과 관련 있어 보이는 링크를 찾아왔어요~
아래 발췌 내용을 확인하시고 원하시는 내용과 일치한다면
링크를 확인해보세요!
Funcall, Apply, and Mapcar
앞에서 함수의 파라미터로 함수를 쓰는 경우가 있다고 이야기했습니다.
> (funcall #’+ 3 4) ;; (+ 3 4)와 같음
7
> (apply #’+ 3 4 ‘(3 4))
14
> (mapcar #’not ‘(t nil t nil t nil))
(NIL T NIL T NIL T)
Funcall은 첫번째 파라미터로 함수이름이 오고 뒤에는 호출되는 함수의 파라미터로 쓰입니다.
Apply도 funcall과 유사합니다. 차이점은 마지막의 파라미터가 반드시 List여야 합니다. 리스트의 요소들이 함수의 파라미터로 사용됩니다.
mapcar의 첫번째 파라미터도 function인데 단 하나의 파라미터만 있는 function이여야 합니다. 두번째 파라미터부터는 첫번째 function의 파라미터로 해서 그 결과들을 List화해서 만듭니다.
Funccall과 apply는 보통 첫번째 파라미터가 variable입니다.
추후에 정렬함수에서 funcall이 비교함수를 호출하는 과정을 살펴봅시다.
Mapcar는 이름없는 함수(아래의 Lambda)를 loop 대신으로 쓸 수 있도록 합니다.
http://sine92.egloos.com/2232193
(funcall #’+ 3 4) 이대로 캐드입력창에 입력하면
no function definition: FUNCALL
funcall 함수가 존재하지않는다고 떠서 실행이 안됩니다
결과값을 도출할수가 없습니다