0
접두어로 중위 입력을 변경하는 함수를 만들려고합니다 : (x + 1)
입력은 (+ x 1)
으로 출력됩니다. Lisp, defun에서 작동하지 않는 명령어
(setq x '(Y + 1))
(if (listp x) (list (second x) (first x) (first (last x))) x)
은 그래서
(+ Y 1)
을 반환 I 입력 목록과이 목록 아니라면 사용자가 입력 한 경우 :
그래서 여기 순간 내 코드입니다. 그러나
는 문제는 함수에서 작업이 코드를 얻을 수 있다는 것입니다 :(defun prefixToInfix (x)(
(if (listp x) (list (second x) (first x) (first (last x))) x)
)
)
함수가 실제로 만들어
하지만 난 그것을 호출 할 때
(prefixtoinfix '(Y + 1))
오류가 발생합니다
Error: Illegal function object: (IF (LISTP X) (LIST # # #) X).
[condition type: TYPE-ERROR]
내 if 문이 주 프로그램에서 작동하지만 왜 내 if 문에서 실행하는지 알지 못합니다. 기능.
함수 본문 주위에 여분의 괄호가 있습니다. – jkiiski
무엇을 의미합니까? 그것을 고칠 수 있습니까? –
첫 줄'(x) ('->'(x)')과 마지막 닫는 괄호의 끝에서 괄호를여십시오. – jkiiski