Hatena::Grouphaskell

haskell の学習 by codo RSSフィード


『ふつうのHaskellプログラミング』をテキストに、Haskellを学んでいます。

2007-05-23

関数の仮引数は、じつは常にマッチするパターンマッチだった! 07:55 関数の仮引数は、じつは常にマッチするパターンマッチだった! - haskell の学習 by codo を含むブックマーク はてなブックマーク - 関数の仮引数は、じつは常にマッチするパターンマッチだった! - haskell の学習 by codo

よく読むと、ちゃんと「ふつける」のパターンマッチのところに書いてありました(^^;

実はHaskellでは関数引数には単なる変数に限らず、値のパターンが指定できるのです。

一方、「どんな値でもいい」というパターンもあります。これは単なる変数の場合で、上記のコードなら「c」が相当します。このパターンはどんな値に対しても常にマッチします。

関数定義で仮引数だとおもっていたのは、パターンだった、ということなのです。常にマッチするパターン

パターンは複数指定でき、上から順に実行されるようです。

では、どこからどこまでが関数定義ということになるのでしょう。

空行をあけてみましたが、これはなにも問題ありませんでした。

閉じカッコなどがないので、レイアウト関係しているのかもしれません。

31ページに、

do式は複数の文を束ねる構文です。Javaで言えばブロック構文に相当します。do式のように複数の式を束ねる構文では、複数の式のインデントを揃えることで式が同じブロックに属していることを表現するのです。この規則をレイアウト(layout)とかオフサイドルール(off-side rule)と言います。

とありました。

もしかしたら、ブロック構文はレイアウトで表現するのかもしれません。

関数定義にしてもおなじなのかも。

レイアウトには空行は関係ないのですね。

MidouMidou 2012/12/22 22:30 Your thinking machtes mine - great minds think alike!

bfktphdddqcbfktphdddqc 2012/12/23 11:55 OobpRU <a href="http://nnrdjyhstfiv.com/">nnrdjyhstfiv</a>

ゲスト



トラックバック - http://haskell.g.hatena.ne.jp/codo/20070523