質問

GHCIの新機能についてコメントしている間、GHCIにはタイプの宣言を宣言し、新しいADTタイプを宣言する能力があることを望みました。このページ それは私にできると言った

let numUniques' :: (Eq a) => [a] -> Int; numUniques' = length . nub

どうやら、その同じ種類の構文は、パターンマッチングに対して動作します(例:1 = true; a 2 = false)。

ADTを作成すると、ほぼ完璧になりますか?それが現在可能かどうか誰か知っていますか? ADTスクラッチファイルを作成してリロードするだけですか?

PS誰かがそうする計画があるかどうか知っていますか? GHC(i)の機能要求はありますか?

また、私はそのオープンソースを知っていますが、現在、GHC(i)をハッキングするほど賢くありません。

役に立ちましたか?

解決

いいえ、しかし、HBI(以前の通訳)で新しいタイプを定義できます。 HackageのGHCIライブラリを介して、これを取り戻すことについての議論があります。

他のヒント

GHCIで明示的なマルチラインコードを行うこともできることに注意してください :{:}: http://www.haskell.org/ghc/docs/6.12.2/html/users_guide/interactive-evaluation.html

これは、GHCバージョン7.4.1の時点で追加され、リリースされました 2月に戻ります:

jcp@butler:~$ ghci
GHCi, version 7.6.1: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> data Test = Foo | Bar | Baz deriving (Read, Show)
Prelude> Foo
Foo
Prelude> read "Bar" :: Test
Bar
Prelude> :t Baz
Baz :: Test

いいえ、GHCIで新しいタイプを定義することはできません。

したがって、はい、これらの定義をファイルに配置する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top