[過去ログ]
関数型プログラミング言語Haskell Part16 (978レス)
関数型プログラミング言語Haskell Part16 http://echo.5ch.net/test/read.cgi/tech/1317958045/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
234: デフォルトの名無しさん [sage] 2011/10/22(土) 22:25:23.49 >>231 たとえば [1..3] は 1 : (2 : (3 : [])) であり、 「リストを構成するデータ型」の値だ そして、 : や [] はこのデータ型の「値構築子」だ( : は中置値構築子) last 関数は、last [] = errorEmptyList "last"; last (x:xs) = ・・・ という形のパターンマッチを行う関数だ last [1..3] は last (1: (2 : (3 : []) なので、 (x:xs) にパターンマッチし、x=1、xs=(2 : (3 : [])) と束縛する リストに限らず、データ型の値を作ってる値構築子の引数(この場合は 1 や 2 など)は、 このようにパターンマッチさせて値構築子を剥がす事でしか参照できない で、リスト 1 : (2 : (3 : [])) がこのようなネスト構造を成している以上、 ネスト構造を「順に剥がしていく」ことでしか中の値は参照できない ちなみに、f (_:_:x:_) = という関数で f [1..3] などとして一気に x=3 と束縛しようとしても、 内部で順に値構築子を剥がす処理をしてパターンにマッチするかを調べるから同じ事 これを 「Haskellの出来」 というのなら、そうだね、としか言いようがない http://echo.5ch.net/test/read.cgi/tech/1317958045/234
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 744 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.011s