2016-10-02 7 views
0

나는 보이는 test.scm라는 파일이 같은 :비 repl 모드에서 mit/gnu scheme을 어떻게 사용합니까?

(display 5) 

나는이

cat test.scm | scheme 

처럼 이동하거나이

scheme < test.scm 

를 좋아하거나

을 같은
cat test.scm | scheme > output.txt 

얻을 수

MIT/GNU Scheme running under GNU/Linux 
Type `^C' (control-C) followed by `H' to obtain information about interrupts. 

Copyright (C) 2011 Massachusetts Institute of Technology 
This is free software; see the source for copying conditions. There is NO 
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

Image saved on Sunday February 7, 2016 at 10:35:34 AM 
    Release 9.1.1  || Microcode 15.3 || Runtime 15.7 || SF 4.41 
    LIAR/x86-64 4.118 || Edwin 3.116 

1 ]=> 5 
;Unspecified return value 

1 ]=> 
End of input stream reached. 
Moriturus te saluto. 

다음과 같이하려면 어떻게해야합니까?

5 
+0

가능한 [MIT-Scheme에서 .scm 스크립트 (REPL 외부)를 어떻게 실행합니까?] (https://stackoverflow.com/questions/903968/how-do-i-execute-a- scm-script-outside-of-the-repl-with-mit-scheme) – Flux

답변

1

까다로운 질문입니다. 나는 조금 노력했지만 현재 사용하고있는 다른 Scheme 구현과 같이 동작하도록하는 데 문제가 있습니다. 자세한 출력 결과가 좋으면 다음을 수행하면됩니다.

scheme --load "file.scm" 

Now.

ikarus --r6rs-script r6rs-program.scm # jit compiled r6rs 

질문에 :

plt-r5rs r5rs-program.scm # interpreted r5rs 
plt-r6rs r6rs-program.scm # interpreted r6rs 
raco exe any-scheme-program.scm 
./any-scheme-program # faster executable 

나는 또한 컴파일 라켓보다 때로는 더 빠르게하기 때문에 때로는 이카루스를 사용 : 나는 보통 내 컴퓨터에 대한 실행 파일을 만들기 위해 plt-r5rsplt-r6rs 단지 물건을 실행하고 raco exe를 사용 당신은 쉘 파이프와 리디렉션을 사용하려고합니다. 이들은 stdio/stdout/stderr를 파일이나 파이프에서 다른 프로그램으로 리다이렉션하며 은 소스 코드를 실행하지 않고으로 실행합니다. 뿐만 아니라이 작업을 수행 R5RS, R6RS 심지어 R7RS에 부합하는 다른 scheme implementations 많이 있다는 것을

cat file1 file2 | ikarus --r6rs-script r6rs-echo.scm | wc -l 
plt-r6rs r6rs-echo.scm < file | wc -l 
plt-r5rs wcl.scm <file> file-count.txt 

참고 :이 라켓과 이카루스 모두 작동합니다. 내가 mit- 계획을 사용한 이후로 꽤 오랜 시간이 걸렸지 만 다른 많은 옵션으로 다시 시작하기 전에 확실히 좋을 것입니다.