Is recieve macro from base implementation of SRFI-1 in fact SRFI-8? Jakub T. Jankiewicz 22 Aug 2021 16:50 UTC
I'm trying to use SRFI-1 base implementation in my Scheme but it lack important pieces. They should be included with the code. Otherwise the code is broke and doesn't work. SRFI-1 uses receive macro and the code comment say that it's trivial to create. Example function. (define (split-at x k) (check-arg integer? k split-at) (let recur ((lis x) (k k)) (if (zero? k) (values '() lis) (receive (prefix suffix) (recur (cdr lis) (- k 1)) (values (cons (car lis) prefix) suffix))))) My question is this is this receive exactly the same macro as in SRFI-8? https://srfi.schemers.org/srfi-8/srfi-8.html With basic implementation like this: (define-syntax receive (syntax-rules () ((receive formals expression body ...) (call-with-values (lambda () expression) (lambda formals body ...))))) If yes then it should be linked somehow so you can actually run the code from SRFI-1 base implementation. PS: The other macro that was missing let-optional was not so trivial to create, I've got help from Reddit: https://www.reddit.com/r/scheme/comments/p8ovr7/how_to_define_letoptionals_macro_from_srfi1/ That macro can also be documented, because as you can see from the code it's not so simple. -- Jakub T. Jankiewicz, Web Developer https://jcubic.pl/me