실행으로 확인하기
LISPEX
(let* ((x 6) (y (+ x 1))) (* x y))관측 결과
OUTPUT
42이 순서로 생각하세요
- 확장은 새 동일성과 숨은 내재 연산을 사용하여 사용자 섀도잉에서도 위생성을 보존합니다.
- 정규화는 정의된 꼬리 위치와 소스 진단을 보존합니다.
guard는 잡을 수 있는 오류를 위한 고정 코어 연계 구조이며 일반 매크로 기능이 아닙니다.
정규화 표면
| 표면 형식 | 코어 전략 | 고정 경계 |
|---|---|---|
| cond / case | 새 임시 이름을 쓴 중첩 if; case는 숨은 eqv? 사용 | 절 꼬리 위치 보존; cond => 없음 |
| and / or | 단락 중첩 if | 마지막 단일 피연산자는 꼬리 유지 |
| when / unless | if와 begin 또는 0개 값 values | 거짓 경로는 0개 값 |
| 이름 있는 let / do | 위생적 letrec 루프 | 재귀 적용은 꼬리 |
| quasiquote | quote와 숨은 생성자 | quasiquote 밖 단독 unquote는 정적 E1xx |
흔한 오해
define-syntax, 구문 객체, 임의 확장은 거부됩니다.
다음으로
코드를 작성할 때 이 페이지를 곁에 두세요. 안내식 설명이 필요하면 문법 지도나 관련 매뉴얼로 돌아가면 됩니다.