あなたはarguementとして、それを通過することなくnmax
内部rmax
、pass
、そしてfail
を使用する場合は、generateUpTo
のwhere
ブロックに含める必要があります。それ以外の場合は、文字通り「範囲外」です。例:あなたは、これらの機能は、複数の場所で使用したい場合、あなたは可能性だけarguementとしてRMAX accect
generateUpTo rmax = check rmax
where
check pass = pAllSorted
check fail = error "insert multiple of 10!"
nmax = rmax `div` 10
pass = rmax `elem` mot
fail = rmax `notElem` mot
:
nmax rmax = rmax `div` 10
pass rmax = rmax `elem` mot
fail rmax = rmax `notElem` mot
注 - また、あなたの定義といくつかの問題を持っているように見えますcheck
... pass
とfail
の値check
の値だけがあり、上で定義した関数ではありません。
更新
数nmax(外-どこ-ブロックスコープのバージョン)を使用するように、あなたはそれにRMAXの値を渡す必要があります。これと同じように:
nmax rmax -- function application in Haskell is accomplished with a space,
-- not parens, as in some other languages.
ただし、nmax
の定義で名前rmax
はもはや重要ではありません。これらの機能はすべてまったく同じです:
nmax rmax = rmax `div` 10
nmax a = a `div` 10
nmax x = x `div` 10
同様に、あなたはrmax
という名前の値でそれを呼び出す必要はありません。
nmax rmax
nmax 10 -- this is the same, assuming rmax is 10
nmax foo -- this is the same, assuming foo has your 'rmax' value.
ハスケル初心者の質問を投票し続ける人には、あなたが知っていると分かっていれば、これをやっている理由についてのコメントを残しておくと非常に役に立ちます。 – Phyx
私たちは彼をアップアップします! :)もっと真剣に、 "私の仕事は私のために"宿題を尋ねる人々のために多くの虐待がありました。多分それは間違いでした。 – gatoatigrado
@Phyx実際、私は初心者の質問に投票しないようにしていますが、おそらく私は下降者について説明することができます。これらの質問の多くは、「あまりにも地域化された」という言葉が一般的で興味深いものではありません。 –