2009-02-21 10 views
6

私は関数型プログラミングの分野の初心者であり、ちょうどSchemeの学習を始めました(半機能型プログラミング言語ですが)。私はSchemeでうまくサポートされているリストについていくつかのチュートリアルをしました。私はSchemeが配列の操作をサポートしているかどうか疑問に思っていましたか?スキーム内の配列の表現

また、独自のデータ型を定義する必要はありますか?リストは誘導的に定義されたデータ型です。配列を新しいデータ型として定義する場合、誘導的に定義できますか?

助けてください。 ありがとうございます。

歓声

答えて

9

あなたはベクターを探しています。

(define arr (vector 1 2 3)) 
(define arr #(1 2 3)) 
+0

vector in schemeという概念に私を紹介してくれてありがとう。私はちょうどそれを見て、それは、(アレイのように)一定の時間に見上げることができるようだ。また、それはスペースに固定されたデータ型のようです - 配列のように。 歓声 – Arnkrishn

+1

ベクトル定数(少なくともR5RSでは)を引用符で囲む必要があります。最後の例は '(define arr '#(1 2 3))'でなければなりません。注:いくつかの実装では、引用符はオプションです。 – soegaard

1

ベクトルを使用して配列を表すことができます。 Schemeのベクトルは、(vector-setを使って)それらを変異させることができるという意味では機能しません。しかし、リストもはset-carを使って変異させることができます! set-cdr!と入力します。