확실한 대답이지만 확실한 이유는 분명합니다. LISP 패키지에있는 모든 외부 정의 된 것을 설명하려고합니다. 그래서 나는이 같은 일을 할 것이라고 기대했다 ... (require "sb-posix")
(do-external-symbols (single-symbol 'sb-posix)
(prin1 single-symbol) (terpri))
하
접두어로 중위 입력을 변경하는 함수를 만들려고합니다 : (x + 1) 입력은 (+ x 1)으로 출력됩니다. (setq x '(Y + 1))
(if (listp x) (list (second x) (first x) (first (last x))) x)
은 그래서 (+ Y 1)을 반환 I 입력 목록과이 목록 아니라면 사용자가 입력 한 경우 : 그래서 여기
내가 (참고로 피터 세이 벨의 책을 사용) DO 매크로를 사용하는 함수를 작성했습니다 구속되지 않는 "DO"하지만 어떤 이유로, 내 함수를 컴파일 할 때 : 내가 얻을 (defun test()
(do ((n 2 (1+ n))
(m 1 (1+ m))
(a (1+ n))
(b (1+ m))
(c (+ n m)
레이블을 사용하는 로컬 함수를 사용하여 함수를 재귀 적으로 사용할 수 있습니다. (defun my-replace (e1 e2 L)
"Perform a deep replace e1 with e2 in L."
(labels ((my-replace-rec (e1 e2 L)
"Used for recursion"
(cond
저는 학교에서 Lisp을 배우고 있는데, 만들려는 프로그램 중 하나는 mapcan을 사용하여 remove-if-not의 기능을 복제하는 프로그램 중 하나입니다. 프로그램을 만들었지 만 제대로 작동하지만 출력을 이해하지 못합니다. I 실행한다면 구체적 : (findall 'numberp '(1 a 3))
를 출력한다 (1-3) 프로그램은 다음과 같다 :가
파이썬 방식으로 소수를 생성하려고합니다. 즉, 생성자를 사용하고 있습니다. 파이썬 코드는 더 많거나 적은 내가 리스프에 아주 새로운 해요 def divisor_in_list(n, d):
""" Returns true if a divisor of n is in d, false otherwise"
def primes():
yield 2
안녕하세요 newbie는 Lisp을 배우려고 노력하고 있습니다. 왜 lisp이 출력 결과의 끝에서 NIL을 인쇄하는지 혼란 스럽습니까? NIL을 출력하지 못하게하거나 if 문이 올바르게 설정되어 있지 않은가? [2]> (square 10)
number greater than 4
NIL
나는 공통 리스프를 처음 사용한다. 나는 시행 단위 알고리즘을 구현하는 다음 술어 함수를 작성했습니다. 이 글을 쓰는 방법이 더 짧고 칙칙한가? 모든 도움이나 제안을 부탁드립니다. (defun primep (n)
"trial-division"
(case (find 0 (loop for i upfrom 2 upto (expt n 1/2) c