글
함수( lambda / apply / mapcar )의 이해
출처 : 네이버 지식인
[ lambda함수 ]->마지막 expr의 값-----------------------------------------------
;익명 함수를 정의합니다.
서브루틴이라고 이해하세요
(lambda (x) (+ x 3))을 유사하게 풀어보면
=>(defun lambda함수(x) (setq result (+ x 3)) ) ;-> 변수에 3을 더하는 함수
(lambda (x y) (* x y))을 유사하게 풀어보면
=>(defun lambda함수(x y) (setq result (* x y)) ) ;-> 변수 x,y을 곱하는 함수
[ apply함수 ]->함수 호출의 결과 ------------------------------------------------
;인수 리스트를 지정된 함수에 전달하고 실행합니다.
;(apply 'function list)
리스트(list)에 있는 모든인수을 지지고 볶은('function) 결과값을 나타냅니다.
(apply '+ '(1 2 3)) ;->1,2,3을 모두 +한 결과값 6을 보여줌
(apply 'strcat '("a" "b" "c")) ;->a,b,c을 모두 strcat으로 결합한 "abc"을 보여줌
(apply '(lambda (x y z) (* x (- y z))) '(5 20 14) )
;->5,20,14을 x,y,z라고 보고 지지고 볶은(* 5 (- 20 14))한 결과값30
[ mapcar함수 ]->목록----------------------------------------------------------
;인수로 지정된 목록(들)을 지정된 함수에 전달하여
;그 실행 결과를 나타내는 목록을 리턴합니다.
;(mapcar function list1... listn)
리스트(list)에 있는 각각의 인수에 작전을 수행(+1)하고 수행된 인수의 리스트로 보여줌
(setq a 10 b 20 c 30)
(mapcar '1+ (list a b c))
;->a,b,c에 각각의 작전을(a+1 b+1 c+1) 수행하고 수행된 인수의 리스트(11 21 31)을 보여줌
(mapcar '(lambda (x) (+ x 3)) '(10 20 30))
;->요것의 작전은 3을 더하는것.각각의 인수에 작전수행 결과는(13 23 33)
-----------------------------------------------------------------------------
'오토캐드' 카테고리의 다른 글
모든 도면 저장 (0) | 2018.07.08 |
---|---|
SSGET 이용하여 선택할때 논리형 검사 필터거는 방법 (0) | 2018.07.08 |
CAD 함수별 코드표 (0) | 2018.07.08 |
치수 시스템 변수 정리 (0) | 2018.07.08 |
리습실행중 에러발생시 처리하는 에러루틴~~ (0) | 2018.07.08 |