0

スキームでは、次のようなペアのリストがある場合:

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

これは基本的に2つの要素のタプルのリストではありませんか?したがって、これをPythonで作成すると、次のようになります。

[[4, 7], [4,9]]または[(4, 7), (4,9)]

Pythonにできるだけ近づけてほしい。それとも、クラスを作成することはさらに近くなりますか?

4

2 に答える 2

2

Schemeの用語では、ペアを2要素タプルと呼ぶのは意味がありません。Schemeには3要素タプルや4要素タプルなどがあることを意味しますが、そうではありません。

つまり、Schemeペアに最も近いPythonの概念は、実際には2要素のタプルになります。ペアのリストは、リストのリストとはまったく同じではありません。

ああ、あなたがあなたのタイトルで暗示した質問に答えるために:

スキームでは、リストは空のリスト(())または2番目の要素がリストであるペアのいずれかです。したがって、すべてのリストはペアですが、一部のペアはリストではありません。たとえば、ペア(1 . (2 . ()))はリスト(より一般的にはと表記)ですが、はリストではないため(1 2)、ペアはリストではありません。(1 . 2)2

これはPythonには当てはまりません。Pythonリストは拡張可能な配列であり、ペア/タプルで作成されたリンクリストではありません。

于 2013-01-29T02:50:23.913 に答える
0

スキーム(ペア)とPython(タプル)には多くの違いがあります。タプルは不変であり、他は不変であるように、ペアはペアではない場合は0を返しますが、タプルは1つの値(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 に答える