Scheme 我可以将符号列表指定给Guile中的元素列表吗?
我正在编写一些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))) 这变得超级乏味。有没有办法让我
(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实现。