SRFI 13의 항목을 수동으로 복사하여 붙여 넣을 필요가 없습니다.이 것은 라켓에 내장되어 있습니다. http://docs.racket-lang.org/srfi/index.html
당신이 r5rs에게 라켓에 언어를 사용하는 경우에는 다음 줄에 SRFI 13 뽑을 수 :
(#%require srfi/13)
을 사실, 주요 SRFI 라이브러리의 대부분은 라켓과 함께 번들로 제공됩니다 이상한 모양의 #%require
은 r5rs 프로그램이 라켓에서 라이브러리 모듈을로드 할 수있게 해주는 라켓 관련 hook입니다. 대신 기본 r5rs
언어를 사용하여, 당신은이 #lang racket
대신, SRFI (13)를 가져 오는 본격적인 보일 것 사용
(#%require srfi/13)
(display (string-replace "foo world" "hello" 0 3))
(newline)
경우 :
그래서 라켓의 r5rs 프로그램은 다음과 같이 될 것이다 비슷한. 여기에 이전 프로그램과 동일한 않습니다 #lang racket
에있는 작은 프로그램입니다 :
#lang racket
(require srfi/13)
(string-replace "foo world" "hello" 0 3)
불행하게도, 당신이보고있는 오류가 정확하게 문제를 진단 할 수있는 충분한 정보를 가지고 있지 않습니다.
define-syntax let-string-start+end
과 : 당신은 당신이 잘못을-복사 할 수 있습니다 코드 생각하는 이유는 SRFI 13 가지 이유에서 복사 언급 이후는, 어딘가 불완전한 복사 및 붙여 넣기를 당신이 그것을 정의 언급 의심 그 줄은 실제로 중요한 괄호를 놓치고 있습니다. 원래의 출처에는 선의 앞 부분에 선행 팸런이 있습니다.
그러나 Scheme에 익숙하지 않으면 SRFI 구현에서 비트와 조각을 직접 손으로 뽑아서는 안됩니다. 전체 라이브러리를로드하여 단순화하십시오.
"필요"를 인식하지 못하는 것 같습니다. 아마도 R5RS를 사용하고 있기 때문일 수 있습니까? 모르겠다 :/ – ercliou
라켓의 R5RS 모드를 사용하고 있다면'(# % require srfi/13)'를 사용해야 할 것이다. –
많은 분들께 감사드립니다. 두 가지 방법 모두 .. 그리고 Chris는 R5RS의 표준 구문입니까? "# %"는 무엇입니까? – ercliou