Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scheme 我可以将符号列表指定给Guile中的元素列表吗?_Scheme_Guile - Fatal编程技术网

Scheme 我可以将符号列表指定给Guile中的元素列表吗?

Scheme 我可以将符号列表指定给Guile中的元素列表吗?,scheme,guile,Scheme,Guile,我正在编写一些guile代码来获取一个设置长度的列表,我需要为列表中的每个元素定义一个变量。 目前,我必须做如下工作: (define (foo l) (let ((e-1 (car l)) (e-2 (cadr l)) (e-2 (caddr l)) ; ... (e-n (list-ref (- n 1) l))) (compute))) 这变得超级乏味。有没有办法让我

我正在编写一些guile代码来获取一个设置长度的列表,我需要为列表中的每个元素定义一个变量。 目前,我必须做如下工作:

(define (foo l)
  (let ((e-1 (car l))
        (e-2 (cadr l))
        (e-2 (caddr l))
        ; ...
        (e-n (list-ref (- n 1)
                       l)))
    (compute)))
这变得超级乏味。有没有办法让我做点像这样的事

(define (foo l)
  (symbol-def e-1 e-2 e-3 e-4 e-n l)
  (compute))

编辑:使问题更加具体。

我发现了具体的问题,其形式如下:

(match lst
    ((pattern) expr))
例如:

(use-modules (ice-9 match))

(let ((l '(test foo bar)))
  (match l
    ((head second third)
     second)))

; returns `foo`

它的可能副本并不是特定于guile的,因为guile使用Alex Shinn的可移植match实现。