04/10/25 08:27:33
>>304
引数をとらずに数値を返す関数を書きたいということですか。
Haskellの場合、引数なしの関数は値そのものとまったく同じものになります。
C言語などでは、int some (void) { return 3 }とint some = 3は違うものですが、
Haskellではsome = 3 :: Intとなり両者の区別は存在しません。
また、doの意味を誤解しているようですね。
doというのはある種のシンタックスシュガーで、
do a
b
c
という表記は a >> b >> cというように解釈されます。
この(>>)はMonadクラスで定義された関数なので、
doをMonadクラス以外のものに適用しても意味がありませんし、
doの後に式がひとつの場合も意味がありません。
Haskellの考え方になじむまでは難しく感じると思いますが、
段階をふんで理解していけば大きな困難はないと思います。
hugsでいろいろな関数をつくって遊んでみることをおすすめします。
洋書ですが、「The Craft of Functional Programming」がおすすめです。