2

こんにちは、私は haskell の初心者で、次のことを実装しようとしていますが、うまくいきません。

ここに私がやろうとしていることの基本的なアルゴリズムがあります

--define some basic example function
fun x y = x + y
--pseudo code for what i am trying to do
  x >= -1.0 || x <= 1.0  --variables x must be within this range else ERROR
  y >=  1.0 || y <= 2.0   --variables y must be within this range else ERROR
4

1 に答える 1

5

これを行うための非常に簡単な方法は次のとおりです。これはガードを使用します:

fun x y
   | x < -1.0 || x > 1.0 || y < 1.0 || y > 2.0 = error "Value out of range"
   | otherwise = x + y

エラーを報告および処理するための、ますます複雑で洗練された一連の方法については、こちらを参照してください。

Maybeivanm が指摘しているように、タイプが望ましい場合もあります。完全を期すための例を次に示します。

fun' :: Float -> Float -> Maybe Float
fun' x y
   | x < -1.0 || x > 1.0 || y < 1.0 || y > 2.0 = Nothing
   | otherwise = Just (x + y)
于 2012-05-08T03:31:40.167 に答える