在 Scheme 中使用 sect 和 slot

Using sect and slots in Scheme

我正在尝试在“函数式编程算法”的帮助下学习 FP 的入门知识。在第 2 章,作者介绍了 sect<> 关键字。书中的过程之一是:

(define add1 (sect + <> 1))

我用了Repl.it来计算程序。但可悲的是,它抛出以下错误:

Error: execute: unbound symbol: "<>" []

然后我尝试了 Racket,因为我 这里 Repl.it 使用不完全支持任何 Scheme 标准的 BiwaScheme。但后来我又遇到了另一个错误:

sect: undefined;
cannot reference an identifier before its definition

那我是不是做错了什么?或者我应该使用另一个编辑器/IDE?

我错了,sect<>都不是Scheme关键字。在序言中提到作者使用 (afp primitives) 库进行原始过程和语法扩展。通过使用此库,您可以随意使用大量额外的程序。

您可以下载here

Racket 自带一个add1 函数;无需自己定义。

它支持 SRFI-26 cutsect 看起来是另一个更常见的名称:

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