Недавно я решил начать играть в MIT Scheme, следуя примерам SICP.Я установил схему из репозитория Ubuntu.
sudo apt-get install mit-scheme
Учитывая входной файл, который выглядит следующим образом:
486
(+ 137 349)
(- 1000 334)
(* 5 99)
(/ 10 5)
(* 25 4 12)
Я запускаю схему следующим образом.
scheme < Numbers.scm
Он производит следующий вывод:
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 ]=> 486
;Value: 486
1 ]=> (+ 137 349)
;Value: 486
1 ]=> (- 1000 334)
;Value: 666
1 ]=> (* 5 99)
;Value: 495
1 ]=> (/ 10 5)
;Value: 2
1 ]=> (* 25 4 12)
;Value: 1200
1 ]=>
End of input stream reached.
Moriturus te saluto.
Этот вывод кажется чрезмерным, поэтому я в настоящее время анализирую его следующим образом.
scheme < Numbers.scm | awk '/Value/ {print $2}
486
486
666
495
2
1200
Есть ли собственный способ уменьшенияподробности схемы, так что я могу получить что-то похожее на приведенный выше вывод, не прибегая к внешнему процессу?
Я изучил вывод scheme --help
, но не нашел никаких очевидных вариантов.
Обратите внимание, что передача имени файла в качестве аргумента не работает в MIT-Scheme.
scheme Numbers.scm
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
;Warning: Invalid keyword: "Numbers.scm"
;Warning: Unhandled command line options: ("Numbers.scm")
1 ]=>