関数型プログラミング言語Haskell Part33at TECH
関数型プログラミング言語Haskell Part33 - 暇つぶし2ch382:デフォルトの名無しさん
20/08/14 20:54:14.09 .net
なぜエラーになるかといえば、タプルにdropはないからです
リストは『全て同じ型』の要素の片方向リストです。要素数は可変です。C++のforward_listをイメージしてください
タプルは『それぞれ好きな型の組み合わせ』であり、リストではありません。要素数は固定です
両者は本質的に内部実装が異なります。リストは要素と、次に辿る先の情報を組にしたデータ構造、一方でタプルはその数だけデータを納めるのみのデータ構造です
抽象的には、リストは2要素のタプルであり、一項目に要素、二項目は(再帰的に)リストを保有します。
こうすることで、二項目を見れば(リストなので)『要素と、二項目にまたリスト』が格納されています
そのリストの二項目を見れば・・・となって単方向リストが実装できている事が理解できます
タプル(,)は二項関数であるとみなせます。コンマの左側と右側に一つずつ何かを取って入れる関数です。
リストでは実際は『:』という二項関数が二項タプルと同じ役目を果たします。つまり
要素 : リスト
のように書き
(要素, リスト)
と抽象的に同じであると気づくことができます。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch