(declare (ftype (function (&rest float) float) + - * min max))
나의 이해는 이것의 목적은 말씀하는 것입니다 컴파일러는 양식의 끝에 나열된 다섯 가지 기능 만 전달 될 수 있습니다. 컴파일러는이 정보를 사용하여보다 효율적인 코드를 만들 수 있습니다.
일부 리스프는이 선언 (ABCL, CCL, ECL, LispWorks, CLISP)에 대해 불평하지 않지만 SBCL은 기본 구성에서이 선언을 허용하지 않습니다. .sbclrc 초기화 파일에
(unlock-package 'common-lisp)
을 입력하여 SBCL을 수락 할 수 있습니다. 그게 지난 1 년 정도 해왔습니다. 나는 +, -, 등등이 그 패키지 안에 있고, 코드가이 함수의 선언을 변경하기 때문에 이것이 필요하다고 가정한다.
내 질문은 : + 및 min과 같은 내장 함수의 함수 유형을 선언하면 SBCL의 컴파일 된 코드에 유익한 영향을 미칠 수 있습니까? (가능한 경우 SBCL이 기본적으로이 선언에 대해 불만을 제기하는 이유는 무엇입니까?) 그러한 ftype 선언을 제거하고 .sbclrc의 unlock-package
행을 제거하는 것이 더 낫지 않습니까?
감사합니다.
감사합니다. Rainer. 유용한 정보와 유용한 조언 - 어둠 속에서 내가 배우던 것을 배우기에 충분할 정도로 충분합니다. – Mars