Korzystanie z sekty i gniazd w schemacie

Dec 18 2020

Staram się poznać początki FP, korzystając z „Algorytmów programowania funkcyjnego”. W rozdziale 2 autor wprowadza słowa kluczowe secti <>. Jedną z procedur opisanych w książce byłoby:

(define add1 (sect + <> 1))

Użyłem Repl.it do obliczenia procedury. Ale niestety rzuca następujący błąd:

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

Potem wypróbowałem Racket, ponieważ przeczytałem tutaj, że Repl.it używa BiwaScheme, który nie obsługuje w pełni żadnego standardu Scheme. Ale potem pojawił się kolejny błąd:

sect: undefined;
cannot reference an identifier before its definition

Więc czy robię coś nie tak? A może jest inny edytor / IDE, którego powinienem użyć?

Odpowiedzi

2 JacobvanLingen Dec 18 2020 at 20:53

Myliłem się, oba secti <>nie są słowami kluczowymi Schematu. We wstępie wspomina się, że autor używa (afp primitives)biblioteki do prymitywnych procedur i rozszerzeń składni. Korzystając z tej biblioteki, masz do dyspozycji kilka dodatkowych procedur.

Możesz go pobrać tutaj .

1 Shawn Dec 19 2020 at 08:34

Rakieta jest wyposażona w add1funkcję; nie ma potrzeby definiowania własnego.

I obsługuje SRFI-26 cut , który sectwygląda na to, co wygląda pod inną, bardziej popularną nazwą:

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