2017-04-24 14 views
0

私は関数型プログラミングに新しいので、私の心を揺さぶるハスケルに関する基本的な質問があります。Haskell - 既存の関数値を変更する方法

私は例

foo 1 1 = 0 
foo 1 2 = 1 
foo 2 1 = 1 
foo 2 2 = 0 

のための簡単な機能を持っているし、(値が1であれば、1から0に例えば)私は別の関数を経由して状況に応じて関数の値を変更したいです。どうやってやるの?私はPythonから来て、何とか私は単純に関数本体に新しい値を割り当てることができると思っていました。この線に沿って何かをしようと

イム:それは私だけのための解決策を見つけることができません単純な質問のように感じているので、

changeValue x y 
     |(foo x y == 1) = foo x y = 0 

少しヒントは、いただければ幸いです。ありがとう!

+2

ハスケルではこれができません。 Pythonではそうはいかない。あなたが実際に念頭に置いている種類の突然変異を使用する、実際に動作するPythonコードをいくつか見せてください。 – leftaroundabout

+0

あなたの答えをありがとう。私はPythonで変数のような関数について考えて間違っていました。 – Totoro

答えて

0

多分http://learnyouahaskell.com/syntax-in-functionsをご覧になりましたか? haskell関数を数学関数と考えると、そこに代入はありません。

とにかく、他の関数に比較する値を問い合わせることができます。その場合、返品1

foo 0 1     = 1 
foo x y 
    | otherfunction x y == 7 = 1 
    | otherwise    = 0 
+0

ありがとう!私はこの方法で私の問題を解決することができると思う:) – Totoro

+0

私は本当にやりたいことは永久に機能を変更するか、むしろそれを上書きすることだと思う。私はちょっと混乱していた:) – Totoro

関連する問題