실제로 매뉴얼 https://github.com/magnars/dash.el#anaphoric-functions에 있습니다.
업데이트 : 매크로 검사 및 병합
lispy를 사용하는 경우 다음으로 시작하십시오.
;; anaphoric version
(--map (* it it) '(1 2 3 4))
그리고 이전의 요점을 (--map
누르면 xf을 눌러 전화를 걸고 lispy-flatten
얻을 수 있습니다.
;; anaphoric version
(mapcar (lambda (it) (* it it)) (quote (1 2 3 4)))
대시는 위임하고 연기하기에 너무 열망하기 때문에이 코드에서는 조금 더 복잡합니다.
(--reduce (max it acc) '(1 2 3 4))
후 xfM:
(let ((list-value (quote (1 2 3 4))))
(if list-value (--reduce-from (max it acc)
(car list-value)
(cdr list-value))
(let (acc it)
(max it acc))))
후 fjfxfM:
(let ((list-value (quote (1 2 3 4))))
(if list-value (let ((acc (car list-value)))
(--each (cdr list-value)
(setq acc (max it acc)))
acc)
(let (acc it)
(max it acc))))
후 fjxfM:
(let ((list-value (quote (1 2 3 4))))
(if list-value (let ((acc (car list-value)))
(let ((list (cdr list-value))
(it-index 0))
(while list (let ((it (car list)))
(setq acc (max it acc)))
(setq it-index (1+ it-index))
(!cdr list)))
acc)
(let (acc it)
(max it acc))))
말할 것도없이, 그것은 it
암묵적인 반복 가능한 var이고 acc
암묵적인 누적 기 var입니다.
한 시점에서, 나는이 표기법을 가능하게하는 짧은 람다 패치를 이맥스에 추가하려고 시도했는데, 이것은 아나 포릭 매크로보다 더 간단하다고 생각합니다.
(map #(* % %) '(1 2 3 4))
(cl-reduce #(max %1 %2) '(1 2 3 4))
그러나 그것은 아무데도 가지 못했습니다.