Импорт строковых примитивных функций в схему MIT

Вводные курсы программирования с использованием Scheme часто используют версию, которая включает примитивные функции, такие как first и bf (описано здесь).

Благодаря этому вопросу у меня локально работает схема MIT, но она выдает следующая ошибка, когда я пытаюсь использовать одну из этих примитивных функций.

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

Copyright (C) 2014 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 Saturday May 17, 2014 at 2:39:25 AM
Release 9.2 || Microcode 15.3 || Runtime 15.7 || SF 4.41 || LIAR/x86-64 4.118
Edwin 3.116

1 ]=> (first 'hello)

;The object hello, passed as an argument to safe-car, is not a pair.
;To continue, call RESTART with an option number:
; (RESTART 1) => Return to read-eval-print level 1.

Как я могу импортировать эти примитивные функции в схему для использования?


person rob-gordon    schedule 08.08.2018    source источник
comment
См. здесь: people.eecs.berkeley.edu/~bh/ssch27 /appendix-simply.html   -  person Rainer Joswig    schedule 08.08.2018
comment
В вашем примере не показана проблема, о которой, по-видимому, связан ваш вопрос: есть функция с именем first, которую вы вызываете для символа hello, что вызывает ошибку, поскольку first определяется только для минусов (и возможно, пустой список, или даже если ваша схема достаточно суетлива (Racket), только на правильные списки, которые не пусты).   -  person    schedule 08.08.2018


Ответы (1)


См. стр. 510. В приложении поясняется, что вам необходимо загрузить код поддержки:

https://people.eecs.berkeley.edu/~bh/pdf/ssch27.pdf

FWIW есть пакет для Simply Scheme, который работает с Racket

https://pkgs.racket-lang.org/package/simply-scheme

person soegaard    schedule 08.08.2018