関数型プログラミング言語Haskell Part33

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2020/02/10(月) 18:17:36.49ID:L6eYQqyh
関数型プログラミング言語 Haskell について語るスレです。

Haskell Language(公式サイト)
https://www.haskell.org/
日本Haskellユーザーグループ - Haskell-jp
https://haskell.jp/

前スレ
関数型プログラミング言語Haskell Part32
https://mevius.5ch.net/test/read.cgi/tech/1548720347/
2020/08/14(金) 20:54:14.09
なぜエラーになるかといえば、タプルにdropはないからです
リストは『全て同じ型』の要素の片方向リストです。要素数は可変です。C++のforward_listをイメージしてください

タプルは『それぞれ好きな型の組み合わせ』であり、リストではありません。要素数は固定です

両者は本質的に内部実装が異なります。リストは要素と、次に辿る先の情報を組にしたデータ構造、一方でタプルはその数だけデータを納めるのみのデータ構造です

抽象的には、リストは2要素のタプルであり、一項目に要素、二項目は(再帰的に)リストを保有します。
こうすることで、二項目を見れば(リストなので)『要素と、二項目にまたリスト』が格納されています
そのリストの二項目を見れば・・・となって単方向リストが実装できている事が理解できます

タプル(,)は二項関数であるとみなせます。コンマの左側と右側に一つずつ何かを取って入れる関数です。
リストでは実際は『:』という二項関数が二項タプルと同じ役目を果たします。つまり
要素 : リスト
のように書き
(要素, リスト)
と抽象的に同じであると気づくことができます。
2020/08/14(金) 23:21:17.25ID:OycuixUd
>>374
コンパイルエラーの文章を読んでぐぐる癖をつけよう
覚えはじめの頃に出会うエラーは大抵は文法ミスか型エラーだろうから
ぐぐれば「何が悪いか」はだいたい解決する
「なぜ悪いか」はすごいHaskellあたりを読み進めていけば習得できるはず
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況