검색으로 찾을 수 없습니다. define*
은 무엇입니까? 예를 들어이 대답에서 찾을 수 있습니다. https://stackoverflow.com/a/24101699/387194guile 또는 scheme에 정의 된 것은 무엇입니까?
답변
자세한 인수 처리 절차 만들기 설명서에서 찾을 수 있습니다.
6.10.4.1 λ *를 정의하고 *.
람다 * 옵션 및 키워드 인수를 허용하는 일부 확장있는 경우를 제외하고, 람다 같다.
library syntax: lambda* ([var…]
[#:optional vardef…]
[#:key vardef… [#:allow-other-keys]]
[#:rest var | . var])
body1 body2 …
옵션 및 키워드 인수는 변수 이름과 표현의 2 요소의 목록을 제공하여, 호출에 존재하지 를 취할 기본 값을 가질 수 있습니다.
(define* (frob foo #:optional (bar 42) #:key (baz 73))
(list foo bar baz))
foo는 예를 들어 고정 인수가, 바, 기본적 값 (42)에 선택적 인수입니다, 그리고 바즈는 73 기본 값 표현하지 않는 평가되지 않습니다 기본 값 키워드 인수입니다 그들은 필요하며 까지 프로 시저가 호출됩니다. 키,하지만 추가 # : (키워드 인수 선언 후) 정의 할 수-다른-키를 알 수없는 키워드를 무시 호출 번호로 지정된 이외의 키워드가있는 경우
는 일반적으로는 오류입니다. 에서
: 구성표 표준 define*
에서
정의하지만, 명명 규칙 별표로 끝나는 모든 기호가없는 상징으로 매우 유사한 동작을 제공 할 것을 지시하지 않는다.
표준에서는 변수를 바인드하는 let
과 변수를 바인딩하지만 한 번에 하나씩 let*
을 사용하므로 생성 된 변수가 다음 바인딩에서 사용 가능합니다.
Scheme을 확장하는 표준 방법 인 SRFI가 있습니다. 구현은 많은 SRFI를 구현하고, 많은 경우 참조 구현을 다운로드하는 것만으로는 불가능한 사람들을 구현합니다. SRFI-89 implementsdefine*
및 lambda*
이며 Scheme에 선택적 위치 인수가 제공됩니다. Guile's SRFI support을보고 SRFI-89는 표시되지 않지만 SRFI-89 자체는 #!key
대신에 #:key
이라는 표기법을 사용한다는 점을 제외하고는 Guile이 가지고 있다고 언급합니다.
R5RS 구현은 표준보다 많은 전역 바인딩을 갖는 것이 일반적입니다. SRFI의 일부가 아닌 경우 이러한 확장을 사용하여 잠겨 있습니다.
- 1. Scheme에 &&가 있습니까?
- 2. Guile scheme - 인용 기간?
- 3. Scheme에 해당하는 Python 적용
- 4. Guile Scheme 및 CGI?
- 5. 더 효율적인 것은 무엇입니까, 데이터 테이블 또는 사용자 정의 개체입니까?
- 6. 어떤 소프트웨어가 Scheme에 쓰여졌습니까?
- 7. Scheme에 대한 각각 및 맵
- 8. scheme에 put & get procedure를 구현하는 방법은 무엇입니까?
- 9. R의 ggplot2는 - 정의 된 사용자를 생성하는 것은
- 10. Scheme에 Eval 프로 시저 작성하기?
- 11. 하나의 키 누르기를 Scheme에 어떻게 기록합니까?
- 12. 스키마의 "스택". 특수하게 만드는 것은 무엇입니까?
- 13. Guile Scheme과 Standard Scheme의 차이점 (라켓 IDE에서)?
- 14. GNU Guile SCM to char *
- 15. 컴파일 된 코드의 '()'것은 무엇입니까?
- 16. 노드에 jpa 또는 jdbc가있는 것은 무엇입니까?
- 17. 곱셈 또는 if : 더 효율적인 것은 무엇입니까?
- 18. LLDB에서 GDB의 "정의"와 동일한 것은 무엇입니까?
- 19. ASP.NET MVC 영역 또는 정의 된 경로?
- 20. (guile) Scheme 환경을 검사/내보내기/직렬화하는 방법
- 21. geiser를 통해 guile 명령 행 옵션을 전달하십시오.
- 22. ClickOnce 서명 - 실제로 서명 된 것은 무엇입니까?
- 23. 커널 프로그램이 모듈 또는 내장 된 것으로 정의 된 경우
- 24. jQuery : 일반 Javascript에서 "금지 된"것은 무엇입니까
- 25. 더 빠른 것은 무엇입니까? JDBC 또는 JNDI?
- 26. Scala에서 @classmethod 또는 @staticmethod와 동등한 것은 무엇입니까?
- 27. 더 나은 것은 무엇입니까? @SuppressLint 또는 @TargetApi?
- 28. 첫째 또는 둘째 옳은 것은 무엇입니까?
- 29. KeyEvent.ACTION_MULTIPLE을 트리거 (또는 생성)하는 것은 무엇입니까?
- 30. seleniumRC 또는 WebDriver에서 Maven을 사용하는 것은 무엇입니까?