Использование секты и слотов в схеме

Dec 18 2020

Я пытаюсь изучить истоки ФП с помощью «Алгоритмов функционального программирования». В главе 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, который мне следует использовать?

Ответы

2 JacobvanLingen Dec 18 2020 at 20:53

Я ошибся, оба sectи <>не являются ключевыми словами схемы. В предисловии упоминается, что автор использует (afp primitives)библиотеку для примитивных процедур и расширений синтаксиса. Используя эту библиотеку, вы получаете кучу дополнительных процедур в свое распоряжение.

Вы можете скачать его здесь .

1 Shawn Dec 19 2020 at 08:34

Ракетка имеет add1функцию; нет необходимости определять свое собственное.

И он поддерживает SRFI-26 cut , что sectпохоже на другое, более распространенное название:

> (require srfi/26)
> ((cut + 1 <>) 2)
3