したがって、Haskell の「if」ステートメントにアプローチするさまざまな方法を検索しましたが、ガードについて疑問があります。たとえば、タプルがあり、条件を確認して +,-,*,/ を実行したいとします。
指定された (x,y) if x < y only +,* 整数のみが必要なため、さらに除算をチェックして x mod
y == 0 かどうかを確認します。これはコンパイルされますが、実行できません
operaciones (x,y) = (x,y)
x,y | x < y = [(x, y, '+', x+y), (x, y, '*', x*y)]
| (x > y) && (x `mod ` y == 0) = [(x, y, '+', x+y), (x, y, '*', x*y), (x, y, '-', x-y) , (x, y, '/', x/y)]
| (x > y) && (x `mod ` y /= 0) = [(x, y, '+', x+y), (x, y, '*', x*y), (x, y, '-', x-y)]
| otherwise = [(x, y, '+', x+y), (x, y, '*', x*y), (x, y, '-', x-y) , (x, y, '/', x/y)]
私はからアイデアを取りました
失敗しました。それ以外の場合は x == y の場合です