Groups | Search | Server Info | Login | Register


Groups > fj.comp.lang.lisp > #18

bug (Funarg problem) in Gauche (Scheme) ?

From HenHanna <HenHanna@devnull.tb>
Newsgroups comp.lang.scheme, comp.lang.lisp, fj.comp.lang.lisp
Subject bug (Funarg problem) in Gauche (Scheme) ?
Date 2024-05-19 00:41 -0700
Organization A noiseless patient Spider
Message-ID <v2caem$38tor$1@dont-email.me> (permalink)

Cross-posted to 3 groups.

Show all headers | View raw


 From the Gauche (Scheme)  manual:

              (cartesian-product ’((a b c) (0 1)))
                    ⇒         ((a 0) (a 1) (b 0) (b 1) (c 0) (c 1))
___________________________________________________
The  Gauche (Scheme)  manual  describes
                                   string-count and cartesian-product
as built-in functions, but I couldn't use them and ended up defining 
them myself.

(define (cartesian-product x)
   (if (null? (cdr x))
     (map list (car x))
     (apply append
       (map (lambda (F)
              (map (lambda (R) (cons F R)) (cartesian-product (cdr x))))
            (car x)))))

(print (cartesian-product '((0 1))) )      ==> ((0) (1))
(print (cartesian-product '((a b)(0 1))) ) ==> ((a 0) (a 1) (b 0) (b 1))

________________________________________

The above code works fine, but when i rename the variable (F) as (x), i 
get the following error, and this must be a bug in  Gauche (Scheme).

             gosh>  (load "CpMerge.lsp")
             ((0) (1))
             *** ERROR: pair required, but got a
                           While loading "./CpMerge.lsp" at line 19

Back to fj.comp.lang.lisp | Previous | NextNext in thread | Find similar


Thread

bug (Funarg problem) in Gauche (Scheme) ? HenHanna <HenHanna@devnull.tb> - 2024-05-19 00:41 -0700
  Re: bug (Funarg problem) in Gauche (Scheme) ? HenHanna <HenHanna@devnull.tb> - 2024-05-19 03:37 -0700

csiph-web