Использование секты и слотов в схеме
Я пытаюсь изучить истоки ФП с помощью «Алгоритмов функционального программирования». В главе 2 автор вводит sect
и <>
ключевые слова. Одна из процедур, описанных в книге, будет следующей:
(define add1 (sect + <> 1))
Я использовал Repl.it для расчета процедуры. Но, к сожалению, это вызывает следующую ошибку:
Error: execute: unbound symbol: "<>" []
Затем я попробовал Racket, потому что читал здесь Repl.it использует BiwaScheme, который не полностью поддерживает какой-либо стандарт Scheme. Но тут возникла еще одна ошибка:
sect: undefined;
cannot reference an identifier before its definition
Так я что-то делаю не так? Или есть другой редактор / IDE, который мне следует использовать?
Ответы
Я ошибся, оба sect
и <>
не являются ключевыми словами схемы. В предисловии упоминается, что автор использует (afp primitives)
библиотеку для примитивных процедур и расширений синтаксиса. Используя эту библиотеку, вы получаете кучу дополнительных процедур в свое распоряжение.
Вы можете скачать его здесь .
Ракетка имеет add1функцию; нет необходимости определять свое собственное.
И он поддерживает SRFI-26 cut
, что sect
похоже на другое, более распространенное название:
> (require srfi/26)
> ((cut + 1 <>) 2)
3