3

ghci の新機能についてコメントしているときに、ghci に型宣言を宣言し、新しい ADT 型を宣言する機能があればいいのにと思っていましたが、誰かがそれが実際に可能であると通知し、検索した後、 私ができることを教えてくれたこのページを見つけました

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

明らかに、同じ種類の構文がパターン マッチングにも機能します (例: let a 1=True;a 2=False)。

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

PSそうする計画があるかどうか誰か知っていますか? ghc(i) の機能リクエストはありますか?

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

4

4 に答える 4

8

これは2 月にリリースされた GHC バージョン 7.4.1 で追加されました。

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
于 2012-11-07T06:44:03.913 に答える
7

:{およびを使用して、ghci で明示的な複数行コードを実行することもできることに注意して:}ください

于 2010-10-03T17:44:28.990 に答える
4

いいえ、ghci で新しい型を定義することはできません。

そうです、これらの定義をファイルに入れる必要があります。

于 2010-10-03T12:37:52.173 に答える
2

いいえ。ただし、hbi(以前のインタープリター)で新しい型を定義することはできます。ハッキングに関するghciライブラリを介して、これを元に戻すことについての議論があります。

于 2010-10-03T23:24:58.053 に答える