ロゴ
ユニオンペディア
コミュニケーション
Google Play で手に入れよう
新しい! あなたのAndroid™デバイスでユニオンペディアをダウンロードしてください!
無料
ブラウザよりも高速アクセス!
 

リスト (抽象データ型)

索引 リスト (抽象データ型)

抽象データ型としてのリスト(list)は、順序つきのデータコンテナとして定義される。 リストはたいてい配列や連結リストを使って実装される。これは配列や連結リストと似た特性を持っているからである。また連結リストのことを単にリストと呼ぶこともある。順序を持つ点を強調してシーケンス(列; sequence)と呼び、連結リストと区別することもある。.

40 関係: 同一性平衡二分探索木二分探索ハッシュテーブルポインタ (プログラミング)ループ (プログラミング)プログラミング言語テーブル (情報)データ型データ構造列 (数学)命令型プログラミングイミュータブルインタフェース (情報技術)オブジェクト (プログラミング)クラス (コンピュータ)コンピュータコンテナ (データ型)コンストラクタシンボリックスセット (抽象データ型)ソートタプル再帰C Sharp等式関数型言語配列集合連結リスト連想配列JavaLISPLuaNullScheme抽象データ型木構造 (データ構造)末尾再帰方言 (プログラミング言語)

同一性

同一性(どういつせい、identity、アイデンティティ)は、他のものから対立区分されていることで変わらずに等しくある個の性質をいう。そのような対立区分される個がないという意味での差異性の対語。このときの差異性とは従って万物斉同性とも無とも言える。区分としての差異性との間を区分しておかないと正しく理解できない。古代ギリシャが確立した論理学には同一律があるが、それは同一性の律なのである。その同一性は常に個の同一性なのである。従って、西洋的に論理的であると必然的に(個の存在と連動する)同一性志向になる。インドや東アジアの伝統はこの、同一性と一体の論理を志向しない。 特に自己同一性(self-identity)というとき、あるものがそれ自身(self、ギリシア語のautosに由来)と等しくある性質をいう。 同一性は西洋の伝統としての哲学上、もっとも重要な概念のひとつであり、同一性によって、あるものは存在ないし定在として把握される、あるいは定立される。.

新しい!!: リスト (抽象データ型)と同一性 · 続きを見る »

平衡二分探索木

平衡二分探索木(へいこうにぶんたんさくぎ、self-balancing binary search tree)とは、計算機科学において二分探索木のうち木の高さ(根からの階層の数)を自動的にできるだけ小さく維持しようとするもの(平衡木)である。平衡二分探索木は連想配列や集合その他の抽象データ型を実装する最も効率のよいデータ構造の1つである。.

新しい!!: リスト (抽象データ型)と平衡二分探索木 · 続きを見る »

二分探索

二分探索(にぶんたんさく、binary search、BS)や二分検索やバイナリサーチとは、ソート済み配列に対する探索アルゴリズムの一つ。.

新しい!!: リスト (抽象データ型)と二分探索 · 続きを見る »

ハッシュテーブル

ハッシュテーブルの例(名前をキーとして電話番号を検索) ハッシュテーブル (hash table) は、キーと値の組(エントリと呼ぶ)を複数個格納し、キーに対応する値をすばやく参照するためのデータ構造。ハッシュ表ともいう。ハッシュテーブルは連想配列や集合の効率的な実装のうち1つである。.

新しい!!: リスト (抽象データ型)とハッシュテーブル · 続きを見る »

ポインタ (プログラミング)

ポインタ (pointer) とは、あるオブジェクトがなんらかの論理的位置情報でアクセスできるとき、それを参照する(指し示す)ものである。有名な例としては Pascal のポインタが挙げられる。 なお、C++では、さらに独立した「参照」という機能がある。.

新しい!!: リスト (抽象データ型)とポインタ (プログラミング) · 続きを見る »

ループ (プログラミング)

この記事では、コンピュータプログラムにおけるループ (loop) について説明する。ループとは、特定の条件下において特定の処理を繰り返すこと、あるいはそのように作られた制御構造のことを言う。日本語の名詞として「繰り返し」とも。特定の条件が成立している限り、特定の処理を繰り返し何度でも実行する。逆に言えば、条件が成立しなくなったときに、処理を中止する。 ループの、特別な形あるいは最も一般的な形として、無条件に繰り返す無限ループがある。詳細は無限ループの記事を参照。 ループは、繰り返しを継続するかどうかを判断するための条件式(反復条件)を持つ。反復条件がループ構造の始まりに置かれる場合、そのようなループ構造のことを前判定ループと呼ぶ。一方、反復条件がループ構造の後ろに置かれる場合、これを後判定ループと呼ぶ。しかし結局のところ以上のような分類は、プログラミング言語の発展の初期に、まず最初にどちらか片方だけが作られ、後から別のものが追加されたという歴史的由来に過ぎず、ループの「内側」のどこかに「ループの脱出」がある、という構造に一般化できるので前判定後判定という分類は本質ではない(実際に、たとえばVisual Basicの「Do...Loop 文」は、どの場合にも対応するよう対称的に作られている)。単にその「内側のどこか」が、その前端か後端にある場合が多い、というだけである。 むしろ、ループの先頭で何らかのデータをファイルから読み込んで計算を開始し、その途中で、繰り返しのその回を打ち切り次の繰り返しに進む、あるいは繰り返しを終わる、といったこともよくあり(ダイクストラは、最後が途中で終わる場合を「n+1/2回の反復」と名づけた)、さらには入れ子になった内側のループの中から外側のループを終わる、というような処理にどう対応するか、が思案のしどころである。 なお。.

新しい!!: リスト (抽象データ型)とループ (プログラミング) · 続きを見る »

プログラミング言語

プログラミング言語(プログラミングげんご、programming language)とは、コンピュータプログラムを記述するための形式言語である。なお、コンピュータ以外にもプログラマブルなものがあることを考慮するならば、この記事で扱っている内容については、「コンピュータプログラミング言語」(computer programming language)に限定されている。.

新しい!!: リスト (抽象データ型)とプログラミング言語 · 続きを見る »

テーブル (情報)

HTMLを使ってウェブブラウザで描画したテーブルの例 テーブル(table)または表は、ビジュアルコミュニケーションの一形態であり、データを並べる手段である。テーブルはコミュニケーション、研究、データ解析など様々な分野で使われている。 印刷物、手書きのノート、コンピュータソフトウェア、建築装飾、交通標識など様々なところでテーブルを見つけることができる。テーブルについての正確な規定や用語は文脈によって異なる。さらに、テーブルの構造、柔軟性、記法、表現、用途も非常に多彩である。書籍や技術文書ではよく表番号と表タイトル付きの回り込みブロックとしてレイアウトされる。 テーブルは、階層型マトリックスの中にデータの集合の論理的構造をマッピングする視覚的情報伝達法の一種でもある。テーブル内のデータは離散的データの場合もあるし変数の場合もある。例えば、数表、真理値表、周期表、HTMLの表(table)などがある。しばしば、グラフなどとまとめられて「統計図表」という言われ方をすることがある。.

新しい!!: リスト (抽象データ型)とテーブル (情報) · 続きを見る »

データ型

データ型(データがた、)とは、(コンピュータにおける)データ(値)の種類に関する分類である。データタイプとも。 具体的にいうと、たとえば 0, 1, 2, -42 といったような値は整数型であり、"foo", "Hello" といったような値は文字列型である。プログラミングなどにおいて、まずデータオブジェクトや関数などの「値」について、またさらに、それらに関連付け(束縛)される変数や定数、リテラル、それらを組合せる演算子、さらにそれらからなる式といった構文上の要素の型が、データ型の議論の対象となる。.

新しい!!: リスト (抽象データ型)とデータ型 · 続きを見る »

データ構造

データ構造(データこうぞう、data structure)は、計算機科学において、データの集まりをコンピュータの中で効果的に扱うため、一定の形式に系統立てて格納するときの形式のことである。 ソフトウェア開発において、データ構造についてどのような設計を行うかは、プログラム(アルゴリズム)の効率に大きく影響する。そのため、さまざまなデータ構造が考え出されている。 多くのプログラムの設計において、データ構造の選択は主要な問題である。これは大規模システムの構築において、実装の困難さや質、最終的なパフォーマンスはベストのデータ構造を選択したかどうかに大きく依存してきたという経験の結果である。多くの場合、データ構造が決まれば、利用するアルゴリズムは比較的自明に決まる。しかし場合によっては、順番が逆になる。つまり、与えられた仕事をこなす最適なアルゴリズムを使うために、そのアルゴリズムが前提としている特定のデータ構造が選択される。いずれにしても適切なデータ構造の選択は極めて重要である。 この洞察は、多くの定式化された設計手法やプログラミング言語において、データ構造がアルゴリズムよりもキーとなる構成要素となっていることに現れている。大半の言語は異なるアプリケーションにおいてデータ構造を安全に再利用できるよう、実装の詳細をインターフェイスの背後に隠蔽するような、モジュール化のしくみを備えている。C++やJavaといったオブジェクト指向プログラミング言語はクラスをこの目的に用いている。 データ構造は専門的なプログラミングにとって非常に重要なので、C++におけるSTLや、Java API、および.NET Frameworkのようなプログラミング言語の標準ライブラリや環境において多くのデータ構造がサポートされている。 データ構造が実装を表すのかインターフェースを表すのかについてはいくらか議論がある。どのように見えるかは相対的な問題なのかもしれない。データ構造は2つの関数の間にあるインターフェイスとして見ることもできるし、データ型に基づいて構成されたストレージにアクセスする方法を実装したものとして見ることもできる。.

新しい!!: リスト (抽象データ型)とデータ構造 · 続きを見る »

列 (数学)

数学において列(れつ、sequence)とは、粗く言えば、対象あるいは事象からなる集まりを「順序だてて並べる」ことで、例えば「A,B,C」は3つのものからなる列である。狭義にはこの例のように一列に並べるものを列と呼ぶが、広義にはそうでない場合(すなわち半順序に並べる場合)も列という場合がある(例:有向点列)。集合との違いは順番が決まっている事で、順番を変更したものは別の列であるとみなされる。たとえば列「A,B,C」と列「B,C,A」は異なる列である。 数を並べた列を数列、(何らかの空間上の)点を並べた列を点列、文字を並べた列を文字列(あるいは語)という。このように同種の性質○○を満たすもののみを並べた場合にはその列を「○○列」という言い方をするが、異なる種類のものを並べた列も許容されている。 列の構成要素は、列の要素あるいは項(こう、term)と呼ばれ、例えば「A,B,C」には3つの項がある。項の個数をその列の項数あるいは長さ (length, size) という。項数が有限である列を有限列(ゆうげんれつ、finite sequence)と、そうでないものを無限列(むげんれつ、infinite sequence)と呼ぶ。(例えば正の偶数全体の成す列 (2, 4, 6,...) )。.

新しい!!: リスト (抽象データ型)と列 (数学) · 続きを見る »

命令型プログラミング

命令型プログラミング(めいれいがたプログラミング、Imperative Programming)とは、計算機科学において宣言型プログラミングの対となる概念であり、計算をプログラム状態を変化させる文の列で記述するプログラミングパラダイムの一種。自然言語の命令法がなすべき行動への指令を表現するのとよく似た方法で、命令型プログラムはコンピュータが実行すべき命令列で構成される。命令型プログラミングに従ったプログラミング言語を命令型(プログラミング)言語と呼ぶ。一般に命令型プログラミングは、手続き型プログラミングと同義として扱われる。 命令型プログラミングは、宣言型プログラミング(関数型や論理型言語など)と対照的である。Haskellなどの関数型プログラミング言語では、プログラムは文の並びではないし、命令型言語が持つような広域状態を持たない。Prologのような論理プログラミング言語では、命令型言語のように計算の「方法」をプログラムとして記述するのではなく、計算すべき「事物」を定義する。.

新しい!!: リスト (抽象データ型)と命令型プログラミング · 続きを見る »

イミュータブル

イミュータブル (immutable) なオブジェクトとは、作成後にその状態を変えることのできないオブジェクトのことである。対義語はミュータブル (mutable) なオブジェクトで、作成後も状態を変えることができる。 あるオブジェクト全体がイミュータブルなこともあるし、C++でconstデータメンバを使う場合など、一部の属性のみがイミュータブルなこともある。場合によっては、内部で使われている属性が変化しても、外部からオブジェクトの状態が変化していないように見えるならば、オブジェクトをイミュータブルとみなすことがある。例えば、コストの高い計算の結果をキャッシュするためにメモ化を利用していても、そのオブジェクトは依然イミュータブルとみなせる。イミュータブルなオブジェクトの初期状態は大抵は生成時に設定されるが、オブジェクトが実際に使用されるまで遅らせることもある。 イミュータブルなオブジェクトを使うと、複製や比較のための操作を省けるため、コードが単純になり、また性能の改善にもつながる。しかしオブジェクトが変更可能なデータを多く持つ場合には、イミュータブル化は不適切となることが多い。このため、多くのプログラミング言語ではイミュータブルかミュータブルか選択できるようにしている。.

新しい!!: リスト (抽象データ型)とイミュータブル · 続きを見る »

インタフェース (情報技術)

インタフェース(interface)は、ものごとの境界となる部分と、その境界でのプロトコルを指す。コンピュータなどでは、コンピュータシステム内、あるいはシステム間のインタフェースや、人間と機械の間のインタフェース(ヒューマンマシンインタフェース)などがある。他分野の専門用語の借用になるが、界面という訳語がある。.

新しい!!: リスト (抽象データ型)とインタフェース (情報技術) · 続きを見る »

オブジェクト (プログラミング)

ブジェクト(object)はオブジェクト指向プログラミングにおいて、プログラム上の手続きの対象を抽象化する概念である。.

新しい!!: リスト (抽象データ型)とオブジェクト (プログラミング) · 続きを見る »

クラス (コンピュータ)

ラス()は、クラスベースのオブジェクト指向においてオブジェクトの設計図にあたるもの。抽象データ型の一つ。クラスから生成したオブジェクトのことをインスタンスという。 クラスには、インスタンスの保持するデータ(メンバ変数、フィールド(UMLでは「属性」ともいう))と操作(メソッド、メンバ関数)が記述される。 クラスは、継承・ポリモーフィズム・カプセル化などの、オブジェクト指向プログラミングにおける重要な概念を実現する強力な手段である。.

新しい!!: リスト (抽象データ型)とクラス (コンピュータ) · 続きを見る »

コンピュータ

ンピュータ(Computer)とは、自動計算機、とくに計算開始後は人手を介さずに計算終了まで動作する電子式汎用計算機。実際の対象は文字の置き換えなど数値計算に限らず、情報処理やコンピューティングと呼ばれる幅広い分野で応用される。現代ではプログラム内蔵方式のディジタルコンピュータを指す場合が多く、特にパーソナルコンピュータやメインフレーム、スーパーコンピュータなどを含めた汎用的なシステムを指すことが多いが、ディジタルコンピュータは特定の機能を実現するために機械や装置等に組み込まれる組み込みシステムとしても広く用いられる。電卓・機械式計算機・アナログ計算機については各項を参照。.

新しい!!: リスト (抽象データ型)とコンピュータ · 続きを見る »

コンテナ (データ型)

ンピュータプログラミングにおいて、コンテナとはオブジェクトの集まりを表現するデータ構造、抽象データ型またはクラスの総称である。コレクションとも言う。コンテナには複数の種類があり、それぞれ独自の方法でオブジェクトを組織的に格納する。 よく知られたものには、.

新しい!!: リスト (抽象データ型)とコンテナ (データ型) · 続きを見る »

コンストラクタ

ンストラクタ(構築子、Constructor)は、オブジェクト指向のプログラミング言語で新たなオブジェクトを生成する際に呼び出されて内容の初期化などを行なう関数、メソッドのことである。対義語はデストラクタ。 オブジェクトの生成は、.

新しい!!: リスト (抽象データ型)とコンストラクタ · 続きを見る »

シンボリックス

ンボリックス(Symbolics)は、同名(Symbolics, Inc.)のかつて存在したコンピュータ製造企業の資産を引き継いだ私企業であり、Open Genera LISPシステムやMacsyma数式処理システムの販売と保守を行っている。本項目では、主にかつてのコンピュータ製造企業について解説する。.

新しい!!: リスト (抽象データ型)とシンボリックス · 続きを見る »

セット (抽象データ型)

ット(set)とは、プログラミングで用いられる抽象データ型の一種。集合とも呼ばれる。順序のないデータの集まりを表現する抽象データ型であり、同一のデータは一つしか含まれないことが保証される。.

新しい!!: リスト (抽象データ型)とセット (抽象データ型) · 続きを見る »

ソート

ート は、データの集合を一定の規則に従って並べること。日本語では整列(せいれつ)と訳される。(以前はその原義から分類という訳語が充てられていたが、もう使われていない) 主にコンピュータソフトにおけるリストに表示するデータに対し、全順序関係によって一列に並べることを指す。また、単に「ソート」といった場合、値の小さい方から大きい方へ順に並べる昇順(しょうじゅん、)を指すことが多い。その反対に値を大きい方から小さい方へ順に並べることを降順(こうじゅん、)という。 対象となるデータのデータ構造や必要な出力によって、使われるアルゴリズムは異なる。.

新しい!!: リスト (抽象データ型)とソート · 続きを見る »

タプル

タプルまたはチュープル(tuple)とは、複数の構成要素からなる組を総称する一般概念。 数学や計算機科学などでは通常、順序付けられた対象の並びを表すために用いられる。個別的には、n 個でできた組を英語で「n-tuple」と書き、日本語に訳す場合は通常「n 組」としている。タプルの概念そのものも組と呼ばれる場合がある。なお、 n-tuple は数学のタプルを意味するほか、同様に double、triple などの拡張として倍数詞の表現にも利用される(詳細は「倍#西洋数学における n 倍を表す表現」を参照)。.

新しい!!: リスト (抽象データ型)とタプル · 続きを見る »

再帰

再帰(さいき)は、あるものについて記述する際に、記述しているものそれ自身への参照が、その記述中にあらわれることをいう。定義において、再帰があらわれているものを再帰的定義という。 主に英語のrecursionとその派生語の訳にあてられる。他にrecurrenceの訳(回帰#物理学及び再帰性を参照のこと)や、reflexiveの訳として「再帰」が使われることがある。数学的帰納法との原理的な共通性から、recursionの訳として数学では「帰納」を使うことがある。.

新しい!!: リスト (抽象データ型)と再帰 · 続きを見る »

C Sharp

C#(シーシャープ)は、アンダース・ヘルスバーグが設計(デザイン)したプログラミング言語であり、構文(syntax)は(名前にもある通り)C言語や、C言語風に構文が設計されたC++やJavaなどの影響があるが、構文以外についてはヘルスバーグが以前の所属であるBorlandで設計したDelphiからの影響がある。 Microsoftによる謳い文句としては、マルチパラダイムプログラミング言語、強い型付け、命令型、宣言型、手続き型、関数型、ジェネリック、オブジェクト指向の要素を持つ、などといった点が強調されている。 CLIといった周辺も含め、Microsoftのフレームワーク「.NET Framework」の一部である他、VJ++で「非互換なJava」をJavaに持ち込もうとしたような以前のMicrosoftとは異なり、その多くの仕様を積極的に公開し標準化機構に託して自由な利用を許す(ECMA-334、ISO/IEC 23270:2003、JIS X 3015)など、同社の姿勢の変化があらわれている一面でもある(実際に「Mono」という、フリーソフトウェアの定義に合致したライセンスの、コミュニティによる実装がある)。.

新しい!!: リスト (抽象データ型)とC Sharp · 続きを見る »

等式

等式(とうしき、equation)とは、二つの対象の等価性・相等関係 (equality) を表す数式のことである。.

新しい!!: リスト (抽象データ型)と等式 · 続きを見る »

関数型言語

関数型言語(かんすうがたげんご、functional language)は、以下に述べる関数型プログラミングを基本スタイルとして推奨する機能を持つプログラミング言語、関数型プログラミング言語の略称である。.

新しい!!: リスト (抽象データ型)と関数型言語 · 続きを見る »

配列

この記事では、コンピュータ・プログラムにおいて配列(はいれつ、array)と呼ばれているデータ構造およびデータ型について説明する。計算科学方面ではベクトルという場合もある。また、リストも参照。一般に、添え字で個々の要素を区別する。.

新しい!!: リスト (抽象データ型)と配列 · 続きを見る »

集合

数学における集合 (しゅうごう、set, ensemble, Menge) とは、大雑把に言えばいくつかの「もの」からなる「集まり」である。集合を構成する個々の「もの」のことを元 (げん、; 要素) という。 集合は、集合論のみならず現代数学全体における最も基本的な概念の一つであり、現代数学のほとんどが集合と写像の言葉で書かれていると言ってよい。 慣例的に、ある種の集合が系 (けい、) や族 (ぞく、) などと呼ばれることもある。実際には、これらの呼び名に本質的な違いはないが細かなニュアンスの違いを含むと考えられている。たとえば、方程式系(「相互に連立する」方程式の集合)、集合族(「一定の規則に基づく」集合の集合)、加法族(「加法的な性質を持つ」集合族)など。.

新しい!!: リスト (抽象データ型)と集合 · 続きを見る »

連結リスト

連結リスト(れんけつリスト、Linked list)は、最も基本的なデータ構造の1つであり、他のデータ構造の実装に使われる。リンクリスト、リンクトリストとも表記される。 一連のノードが、任意のデータフィールド群を持ち、1つか2つの参照(リンク)により次(および前)のノードを指している。連結リストの主な利点は、リスト上のノードを様々な順番で検索可能な点である。連結リストは自己参照型のデータ型であり、同じデータ型の別のノードへのリンク(またはポインタ)を含んでいる。連結リストは場所が分かっていれば、ノードの挿入や削除を定数時間で行うことができる(場所を探すのにかかる時間はリスト上の順番の条件などにも依存するし、後述する片方向リストなのか双方向リストなのかにも依存する)。連結リストにはいくつかの種類があり、片方向リスト、双方向リスト、線形リスト、循環リストなどがある。 連結リストは多くのプログラミング言語で実装可能である。LISP や Scheme 、Prologといった言語は組み込みでこのデータ構造を持っていて、連結リストにアクセスするための操作も組み込まれている。手続き型やオブジェクト指向型の言語(C言語、C++、Java)では、連結リストを作るには mutable(更新可能)な参照を必要とする。.

新しい!!: リスト (抽象データ型)と連結リスト · 続きを見る »

連想配列

連想配列(れんそうはいれつ、associative array.)とは、コンピュータプログラミングにおいて、添え字にスカラー数値以外のデータ型(文字列型等)も使用できる配列である。抽象データ型のひとつ。連想リスト、連想コンテナ、辞書(あるいはカタカナでディクショナリ dictionary)、ハッシュ(hash)、マップ(map)とも呼ばれる。 歴史的には、最初に LISP の連想リストとして広く認知された。その後、SNOBOL で table として、AWK で連想配列として実装したことで、その潜在能力がさらに広く知られるようになった。現在、Ruby など一部の言語では、添え字にはどのようなデータでも使えるものもある。.

新しい!!: リスト (抽象データ型)と連想配列 · 続きを見る »

Java

Java(ジャバ)は、狭義ではプログラミング言語Javaを指す。広義では言語仕様以外にも、仕様が与えられているJavaクラスライブラリやJava仮想マシン、さらにはJDKやJREなどの公式のものをはじめとする、場合によってはサードパーティのものなどを含め曖昧にJavaプラットフォームと総称されるようなものなどのエコシステムなどを指すこともある。構文についてはJavaの文法の記事を参照。.

新しい!!: リスト (抽象データ型)とJava · 続きを見る »

LISP

LISPは、プログラミング言語である。 によって記述される。-->前置記法などが特徴である。 1958年にはじめて設計されたLISPは、現在広範囲に使用されている高水準プログラミング言語の中でもFORTRANに次いで2番目に古い。ただし、FORTRANと同様に、現在のLISPは初期のものから非常に大きく変化している。 これまでに多数の方言が存在してきたが、今日最も広く知られるLISP方言は、Common LispとSchemeである。 元々、LISPは、アロンゾ・チャーチのラムダ計算表記法に影響を受け、コンピュータープログラムのための実用的かつ数学的な表記法として作られた。そして、すぐに人工知能研究に好まれるプログラミング言語になった。最初期のプログラミング言語として、LISPは計算機科学にて、木構造、ガベージコレクション、動的型付け、条件分岐、高階関数、再帰、セルフホスティング、コンパイラを含む多くのアイディアを切り開いた。 LISPの名前は、「list processor」に由来している。リストはLISPの主要なデータ構造であり、LISPソースコードはそれ自体がリストからできている。その結果、LISPプログラムはソースコードをデータとして操作することができ、プログラマーは、マクロ・システムで新しい構文やLISP埋め込みの新しいDSLを作成できる。 コードとデータの互換性は、LISPにそのすぐに認識できる構文を与える。すべてのプログラム・コードはS式または入れ子のリストとして書かれる。関数呼び出しまたは構文は先頭が関数または演算子の名前で、その続きが引数であるリストとして書かれる。具体的には、3つの引数を取る関数fは、(f arg1 arg2 arg3)として呼び出される。.

新しい!!: リスト (抽象データ型)とLISP · 続きを見る »

Lua

Lua(ルア)は、リオデジャネイロ・カトリカ大学の、主としてDepartment of Computer Science(コンピュータ科学科)and・or Computer Graphics Technology Group (Tecgraf) に属する、Roberto Ierusalimschy, Waldemar Celes, Luiz Henrique de Figueiredo らによって設計開発されたスクリプト言語およびその処理系の実装である。 手続き型言語として、また、プロトタイプベースのオブジェクト指向言語としても利用することができ、関数型言語、データ駆動型としての要素も併せ持っている。 Luaという名前は、ポルトガル語の月に由来する。.

新しい!!: リスト (抽象データ型)とLua · 続きを見る »

Null

Null(ヌル、ナル)は、何もない、という意味で、プログラミング言語などコンピュータ関係では、「何も示さないもの」を表すのに使われる。同様のものに、nil が使われることもある。他の名前のこともある。 本来 はドイツ語において数値の0(ゼロ)を意味する単語であり、ドイツ語における発音は である。一方、英語においては と発音される。実際の発音はを参照のこと。 日本においては原語に近い「ヌル」という発音が定着しているが、英語読みに近い「ナル」という発音で呼ばれる場合もある(専門書、国家試験など)。 プログラミング言語などにおいて、nullやnilといった予約語や定数名のものなどの意味がどういったものかは言語により、場合によっては実装ごとに違う。ポインタや参照のある言語では、ヌルポインタなどと呼ばれる何も指さない特別なポインタであることもあるし、Pythonのようにオブジェクトのこともある。古典的なLISPのように真理値の偽(の代表)や空リスト「()」を兼ねたもの(それらと同じもの)だったりすることもある。.

新しい!!: リスト (抽象データ型)とNull · 続きを見る »

Scheme

Scheme(スキーム)はコンピュータ・プログラミング言語 Lispの方言のひとつで、静的スコープなどが特徴である。仕様(2017年現在、改7版まで存在する)を指すこともあれば、実装を指すこともある。Schemeにより、Lisp方言に静的スコープが広められた。.

新しい!!: リスト (抽象データ型)とScheme · 続きを見る »

抽象データ型

抽象データ型(ちゅうしょうデータがた、abstract data type、ADT)とは、データ構造とそれを直接操作する手続きをまとめてデータ型の定義とすることでデータ抽象を実現する手法またはそのひとまとまりとして定義されたデータ型を言う。通常のデータ型であれば変数宣言で変数に束縛されるものは値であるが、抽象データ型の世界において値に相当するものはデータ構造とその操作のまとまりである。 抽象データ型を用いない場合、データ構造またはデータの操作手続きのアルゴリズムの変更を行うとソースコード中にその変更部分が散在してしまい規模によっては修正困難となるが、データとその操作がひとまとめに記載されることになる抽象データ型においては、型の定義における実装部分を変更するだけで修正が完了する。.

新しい!!: リスト (抽象データ型)と抽象データ型 · 続きを見る »

木構造 (データ構造)

親子構造 木構造(きこうぞう)とは、グラフ理論の木の構造をしたデータ構造のこと。.

新しい!!: リスト (抽象データ型)と木構造 (データ構造) · 続きを見る »

末尾再帰

末尾再帰(まつびさいき)とは、再帰的な関数やプロシージャにおいて、自身の再帰呼び出しが、その計算における最後のステップになっているような再帰のパターンのことである。再帰にかかわらず一般に、そのような最後の呼び出しを末尾呼び出し (:en:Tail call)という。呼び出しではなく、戻り先を保存しないジャンプに最適化できるという特徴がある(#末尾呼出し最適化)。.

新しい!!: リスト (抽象データ型)と末尾再帰 · 続きを見る »

方言 (プログラミング言語)

プログラミング言語における方言(ほうげん)は、自然言語の方言と同様に基本的な文法や機能を共通しながら、細かい振る舞いに差違の見られる類縁言語の事をいう。ただし、外部ライブラリにより機能の拡張を行なう場合は、他の方言でも同様に拡張が可能なので方言とは言われない。多くの場合ライブラリは複数の方言に対応し、差違を吸収できるように作られている。また、Pascal、Modula、Modula-2、あるいはC言語とC++のように進化の過程で言語的な能力を変化させたものはたとえ類縁関係にあっても方言とは言われない。 プログラミング言語においては、ソースコードの互換性が方言の性質を決定する。逆に同じソースコードを同じプラットフォームにおいて同じ意味で解釈しても、吐き出される実行コードは処理系ごとに異なっている事が普通である。なぜならコードはコンパイラ最適化などの段階を経るため、利用者にとって「同じである」と判断される動作さえ行えば、実際の内部構造は問わないからである。言語仕様によっては、これら最適化などの段階についても仕様のうちに内包して制御する。 最も頻繁に見られる方言の例は、統一仕様をもった言語に対して複数のコンパイラ、インタプリタが独自の拡張仕様を盛り込むケースである。BASICはこの種の典型で、一応は規格が存在するのだが、言語間での互換性はほとんどないに等しい状態となった。近年ではJavaScriptなどもブラウザ間の互換性が問題となっている。 逆に、特に定まった規格がなく、処理系=仕様という形態から方言が生じたケースも多い。LISPはS式表現とcar, cdr, eval, condといった基本的な語彙があればほとんど自由に機能拡張ができるため、Common Lispが策定されるまでは無数の方言が乱立する状態にあった。現在普通に使われる処理系はCommon Lisp系、Scheme系、GNU EmacsのEmacs Lisp程度で以前よりは安定した状態にあるが、それでも実装毎の差違がかなり見られる。 CもLISPに近い経緯をたどった言語で、かつては処理系毎にかなりの実装差が見られた。しかしANSI C規格が出現した事で非互換性の問題はほぼ解消し、方言と呼べるような違いは初期のK&RスタイルとANSIスタイル、GCC拡張機能の差違程度となっている。 ほうげん.

新しい!!: リスト (抽象データ型)と方言 (プログラミング言語) · 続きを見る »

出ていきます入ってきます
ヘイ!私たちは今、Facebook上です! »