여기 방법 목록을 반복하지 수있는 것을 확인하려면입니다. "영어로 키워드를 읽고 그들이 의미하는 바를 추측해라"는 말의 의미를 설명하는 것은이 답변의 범위를 넘어서며 loop
온라인의 많은 설명이 있습니다. 예를 들어 Peter Seibel의 의 "Black Belt Loop"장 Practical Common Lisp은 무료 온라인으로 제공됩니다.
다음은 목록의 문자를 쓰는 방법입니다. 다양성을 위해이 함수는 명시 적으로 함수를 정의하고 명시 적 루프 대신 상위 순서 목록 조작 함수를 사용합니다. 따라서 아마 더 느릴 것입니다.
(defun print-characters (list)
(let ((chars (remove-if-not #’characterp list)))
(mapC#’write-char chars)))
remove-if-not
그것만 (이 경우에 characterp
) 술어 true를 반환하는 요소를 포함하는 것을 제외하고, 입력과 동일한 내용의 새로운리스트를 반환한다. characterp
은 입력이 문자 인 경우에만 true를 반환합니다.
mapc
은 반환 값을 버리고 목록의 각 요소에 함수를 적용합니다. 이 경우 write-char
하나의 인수로 호출하면 *standard-output*
에 문자를 씁니다.
http://www.lispworks.com/documentation/HyperSpec/Body/f_nump.htm#numberp – melpomene
[LISP를 배우는 가장 좋은 방법은 무엇입니까?] (https://stackoverflow.com/questions/398579/)의 복제본이있을 수 있습니다. 가장 좋은 방법 - 배우기 - 리스프) – Deep