0

在 Scheme 中,如果您有一个配对列表,例如:

((4 . 7) (4 . 9))

这基本上不是 2 个元素元组的列表吗?所以如果你用python写这个,会不会是这样的:

[[4, 7], [4,9]]还是[(4, 7), (4,9)]

我希望它尽可能接近python。或者创建一个类会更接近?

4

2 回答 2

2

在 Scheme 术语中,将 pair 称为二元素元组是没有意义的,因为这意味着在 Scheme 中存在三元素元组或四元素元组之类的东西,但实际上并没有。

也就是说,与 Scheme 对最接近的 Python 概念确实是一个二元素元组。对列表绝对不同于列表列表。

哦,回答你在标题中暗示的问题:

在 Scheme 中,列表要么是空列表 ( ()),要么是第二个元素是列表的对。所以每个列表都是一对,但有些对不是列表。例如,该对(1 . (2 . ()))是一个列表(通常写为(1 2)),但该对(1 . 2)不是一个列表,因为2它不是一个列表。

这些都不适用于 Python。Python 列表是可增长的数组——不是由对/元组组成的链表。

于 2013-01-29T02:50:23.913 回答
0

scheme(pair) 和 python(tuple) 有很多不同,比如 tuple 是不可变的,而其他的不是,pair 返回 0 当它不是一对但 tuple 可以代表一个值 (x,) 等等。

阅读:http ://www.tutorialspoint.com/python/python_tuples.htm (对于python) http://www.gnu.org/software/guile/manual/html_node/Pairs.html(对于Scheme)

:)

于 2013-01-29T03:20:54.407 回答