안녕하세요 newbie는 Lisp을 배우려고 노력하고 있습니다. 왜 lisp이 출력 결과의 끝에서 NIL을 인쇄하는지 혼란 스럽습니까? NIL을 출력하지 못하게하거나 if 문이 올바르게 설정되어 있지 않은가? [2]> (square 10)
number greater than 4
NIL
"defun"과 "lambda"등과 같이 많이 사용되는 명령에 대해 공통 리스프 (별칭은 clisp)로 별칭을 설정하고 싶습니다. 이 실제로이 question의 종류의 중복,하지만 난 언급 할 수와 솔루션이 모두 SBCL에 defun는 또는 람다 작동 및 CLISP하지 않습니다
이 함수는 약 2000 단계 이상의 스택 오버 플로우를 초래합니다. 메모리를 적게 사용하도록 쉽게 최적화 할 수있는 방법이 있습니까? 난 당신이 내가 가지고 사용하는 기능을 가지고 있지 않기 때문에 (defun randomwalk (steps state)
(loop :if (= steps 0)
:do (return nil)
my_rotate이라는 함수를 작성하여 사용자로부터 숫자를 받고 5 개의 숫자까지 목록을 만듭니다. my_rotate 그러면 목록의 첫 번째 요소가 튀어 나와 목록의 끝에 추가됩니다. my_rotate에 다른 숫자 n을 입력하고 사용자가 입력 한 숫자 n을 기반으로 목록을 회전시킬 수있는 방법에 대한 조언. 예 : > (my_rotate 1 2) 출력 :
에서 속성 이름을 확장하여이 속성 목록을 고려 (defvar *some-variable* (list :foo "fooval" :bar "barval"))
이 간단한 전화 : (getf *some-variable* :foo)
수익률이 예상대로 "fooval". 이런 식으로 전화, 불행하게도 (defmacro my-macro (property-name)
그래서 나는 이차 방정식의 두 뿌리 평가하고 목록에이 간단한 표현이 있습니다 (defun QUADRATIC (A B C) (list (/ (+ (- B) (sqrt(- (* B B) - (* 4 A C)))) (* 2 A)) (/ (- (- B) (sqrt(- (* B B) - (* 4 A C)))) (* 2 A))))
을하지만을 나는 어떤 세와 CLI
나는 이틀 동안 알레그로 공통 리스프를 사용하여 ispisp을 실행 해 왔습니다. 지금 CLISP을 사용할 필요하지만 컴파일 할 때 내가 얻을 : SYSTEM::%FIND-PACKAGE: There is no package with name
"COMMON-GRAPHICS-USER"
내가 그래서 해결책을 찾고있다 LISP 꽤 새로운 오전하지만
CLisp에서 두 목록을 완벽하게 뒤섞어 쓰는 프로그램을 작성하려고합니다. 아래는 제 프로그램입니다. 프로그램 입력 내용을 (shuffle '(1 2 3) '(4 5 6))으로주었습니다. car:6 is not a list 오류가 발생했습니다. (defun len (list)
(if list
(1+ (len (cdr list)))