私は、現時点では、読者のモナドをカバーしています、と私はrunReader
に遭遇しました:レコード構文内で定義された関数インタフェースの実装?
newtype Reader e a = Reader {runReader :: (e -> a)}
私はここにデータコンストラクタReader
がに渡されるために、2つの異なる種類(e
とa
)を有効にしていることを理解しますレコード構文を使用してのe
およびa
で動作する型コンストラクタReader
私はこれのテストを実施しようとしている:
newtype Test a b = Test {runTest :: (a -> b)}
にはどうすればrunTest
の実装の作成について行くのですか?
他のデータ型と同じように、正しい型の引数を渡してください! 'Test id :: Test aa'、' Test(\ b-> bならばNothing else()):: Test Bool(Maybe()) 'など – Alec
このコメントは建設的ではない - canあなたは説明してください? –
私が誠実ではない、それは意図ではなかったと私は謝罪します。私の指摘は、 'runTest'に特有の名前がついていても、まだ' test'を作るためのフィールドであり、 'runTest'フィールドを埋めるために関数に渡したということです。その関数は 'runTest'の"実装 "です。 – Alec