こんにちは、私は次のコード関数の変数ではないHaskellの
import Data.Maybe
import Test.QuickCheck
import System.Random
rndExpr :: Gen Expr -> IO Expr
rndExpr gen = do
rnd <- newStdGen
return (generate 5 rnd gen)
を持っているが、私は「スコープ内にない 『取得』が発生し、なぜこれがそう?
よろしく ダレン
編集私はTest.QuickCheckをインポートしていますが、それでも "生成"が有効範囲にないという不満があります。
編集2
クイックチェックバージョン2で動作するように、この関数をどのように記述しますか?私はシンプルなノーsuccsessとした生成「Ungenメール」を入れてみました、私もインストールquickcheckのV 2
私は次のプロパティstdGen->Gen Expr->Expr'
とUngenメールでの機能を必要とすることを私に与えているように見える(徒党はQuickCheck-2.1.0.3をインストール)私の言ったように、コンパイラはその機能を見つけることができません。この問題に使用できる他の機能はありますか?
あなたの編集ではまだ不完全な情報が得られます。クイックチェックのどのバージョンを使用していますか? QuickCheck2はafaikを 'generate'にエクスポートしません。あなたのコードスニペットはQC1で見つけることができます。私はunicodeの矢印を修正しました。(しないでください) 'type Expr = Int'を追加してください。 –
どのバージョンを使用しているかを確認する方法はわかりませんが、imはバージョン1を使用していると仮定しているため、quickcheckで "generate"関数を使用します。しかし、私の質問が変わった場合、この機能を書くための他の方法はありますか? – Darren