gpt4 book ai didi

list - 方案相当于元组拆包是什么?

转载 作者:行者123 更新时间:2023-12-02 23:47:25 26 4
gpt4 key购买 nike

在Python中,我可以做这样的事情:

t = (1, 2)
a, b = t

...a 将是 1,b 将是 2。假设我在 Scheme 中有一个列表 '(1 2)。有什么方法可以用 let 做类似的事情吗?如果有影响的话,我会使用 Racket。

最佳答案

在 Racket 中你可以使用match ,

(define t (list 1 2))
(match [(list a b) (+ a b)])

以及相关的东西,例如 match-define :

(match-define (list a b) (list 1 2))

match-let

(match-let ([(list a b) t]) (+ a b))

这适用于列表、向量、结构等。对于多个值,您可以使用 define-values :

(define (t) (values 1 2))
(define-values (a b) (t))

let-values。但请注意,我无法将 t 定义为“元组”,因为在(大多数)方案实现中多个值不是第一类值。

关于list - 方案相当于元组拆包是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4220515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com