2015-04-25 02:13:48 +0000 <songzh_> https://mail.haskell.org/pipermail/beginners/2015-March/014857.html
2015-04-25 02:16:23 +0000 <songzh_> 等九瓜老师来了问问他。
2015-04-25 02:17:06 +0000 <fishts> 太高深了没人懂 ∑(ι´Дン)ノ
2015-04-25 02:18:01 +0000 <songzh_> 一点也不高深,看看我写的小玩具你就明白了。 http://hackage.haskell.org/package/derive-topdown
2015-04-25 02:18:23 +0000 <rink1969> 我大概明白问题的意思
2015-04-25 02:18:42 +0000 <songzh_> data A a b = A a (B b) deriving (Show)
2015-04-25 02:18:47 +0000deadfool(~jason@112.90.37.218)
2015-04-25 02:18:48 +0000 <songzh_> data B a = B a deriving (Show)
2015-04-25 02:18:54 +0000 <songzh_> derivings ''Eq makeEq ''A
2015-04-25 02:19:46 +0000 <songzh_> A基于B,我一句话想把A与B的Eq实例全生成出来,但是你看derivings里Eq要写两次,而且我去不掉。
2015-04-25 02:20:41 +0000 <songzh_> 这个程序做的事情就是你一个树状的各个类型定义,只要写最顶上的类型类实例,树下面的程序会自动遍历帮你生成。
2015-04-25 02:21:07 +0000 <shouya> 大概明白在做甚麼了
2015-04-25 02:21:57 +0000 <songzh_> 这种自动的东西当你在写语言的时候你就知道了,AST里每个non-terminal都要手工写deriving,实在是无力。
2015-04-25 02:25:11 +0000 <rink1969> 你是在设计一种DSL语言吗?
2015-04-25 02:26:51 +0000 <songzh_> 之前搞过,derive的太多,我会用CPP的宏,但是还是不满意。
2015-04-25 02:27:55 +0000 <songzh_> 现在Haskell有了StandaloneDerving,7.10也在TH里加了,我把库再搞下,以后这种事情应该好办很多。
2015-04-25 02:30:13 +0000Javran(~javran@c-73-200-214-152.hsd1.md.comcast.net)
2015-04-25 02:30:35 +0000 <rink1969> 有一个问题,除了Eq Show之类的,还有什么很通用的class吗?你在使用的时候是想deriving什么样的属性?
2015-04-25 02:31:17 +0000 <songzh_> 我在deriving时需要指定啊导出什么类型类啊。
2015-04-25 02:31:38 +0000 <songzh_> 所以你看derive库里的函数类型就是derive :: Derivation -> Name -> Q [Dec]
2015-04-25 02:31:51 +0000 <songzh_> 还有Data,Typeable
2015-04-25 02:31:55 +0000 <songzh_> Generic
2015-04-25 02:32:05 +0000 <Javran> 怎么说,现在deriving可以用TH搞?
2015-04-25 02:32:06 +0000 <songzh_> Enum,Read
2015-04-25 02:33:39 +0000 <songzh_> 你看看derive的库,能自动给出class instance的类型类太多了,NFData,Arbitrary,CoArbitrary,Series,CoSeries啥的,不过NFData已经用Generic实现了。
2015-04-25 02:34:02 +0000 <songzh_> derive就是用TH搞出来的啊。
2015-04-25 02:34:10 +0000 <songzh_> @id
2015-04-25 02:34:46 +0000 <fishts> 跟SYB, GHC.Generic有什么不一样吗
2015-04-25 02:34:53 +0000 <songzh_> 我想加一层包装,能自上而下地搞。
2015-04-25 02:35:20 +0000 <rink1969> SYB是需要每个data都derive吧?
2015-04-25 02:35:24 +0000rnons(~Thunderbi@184.75.250.215)
2015-04-25 02:35:28 +0000 <songzh_> SYB只能实例通用的函数,却不能自动实现类型类。
2015-04-25 02:35:52 +0000mtrythall(~mtrythall@pool-108-36-102-29.phlapa.fios.verizon.net) (Quit: Textual IRC Client: http://www.textualapp.com/)
2015-04-25 02:35:53 +0000 <songzh_> 想使用SYB的话每个都要是Typeable与Data类型类的实例
2015-04-25 02:36:01 +0000 <Javran>