- 113 名前:デフォルトの名無しさん [04/04/14 12:02]
- 工科大の
www.teu.ac.jp/kougi/koshida/Prog6/Text08/index.html の問題1 ですが、 > sigma :: (Int -> Int) -> (Int -> Int) > 上記の関数sigmaを,1) ラムダ記法を使って,2) 関数の部分適用を使って,定義せよ.ただし,sigma fは,自然数nに対して > f 0 + f 1 + ... + f n > を計算する関数とする. lambda 版 は以下のように作成しました。 sigmaLambda :: (Int -> Int) -> (Int -> Int) sigmaLambda f = \x -> sum [f i | i <- [0 .. x]] で、部分適用版ですが、 sigma :: (Int -> Int) -> Int -> Int sigma f 0 = f 0 sigma f n = sigma f (n-1) + f n で、いいんでしょうか。 題意のような関数を返すのですが、部分適用という感じがしません。 出題者がどのような回答を期待しているか知りたいのですが。 (あと、なんか lambda版を、内包表現とか使ってて、出題意図に沿ってないような気がするのです)
|

|