私は現在、The Craft of Functional Programming 2nd Editionを研究しています。私は、私を困惑させた関数の間に書き込むタスクを提示されています。ハスケルで数値関数を書く
関数は、引数として3つの数値をとり、nは、n及びpの間にある場合の間で、M、N、Pが真であるように、それが定義されている、すなわち
between :: Int -> Int -> Int -> Bool
ブール結果を返します。説明の簡略化のために、関数はtrueを返します。また、3 3 5の間はtrueを返します。
数学的には、X < = YおよびY < = Z
質問はまた、私は数配列は任意の時点でダウンしていないことを確認weakAscendingOrder関数を書くことができることをお勧めします。私はこの機能を書かれているし、私のコードを以下に示します。
weakAscendingOrder :: Int -> Int -> Int -> Bool
weakAscendingOrder x y z = (x <= y) && (y <= z)
彼らは本を読んで提供されているので、関数のシグネチャを維持しながら、私は、またはweakAscendingOrderを使用してもしなくても、機能間を書くことができますどのように?
この場合、「between」は何を意味しますか? >、<,<=,> =) – Lazersmoke
あなたの 'weakAscendingOrder'は正確に' between'関数であるようです。 'y 'が' x'と 'z 'の間にあれば' x> = y'( 'y'は少なくとも' x')で 'y <= z'(' y'はせいぜい 'z')これは正確に 'weakAscendingOrder'が言っているものです。 – user2407038
これは実際には真実ですが、それは解決策が単純すぎると思っていましたが、多分そうではないかもしれません –