IRC可不只是闲聊的地方,她是你随时可用的好工具。IRC中有很多Bot可以随时为你服务。这里只收集了在#haskell@freenode中使用的lambdabot。(为了不影响别人,你最好发私信: /msg lambdabot ...)
查hoogle:
ERC> @hoogle applicative
查类型:
ERC> @type (<*>)
运算:
ERC> > map ((&&) <$> (>3) <*> (<5)) [1..9]
ERC> @let a...b = [a..b]
> 1...20
大家知道do是语法糖,可用@undo还原:
ERC> @undo do { Just y <- x; z }
查实例:
@instances Monad
ReaderT r m, ST s, StateT s m, WriterT w m, []
查源码:
ERC> @src (<$>)
ERC> @src foldr
ERC> @src foldl
ERC> @src Monad
ERC> @source Data.List
看看是否有现成函数:
ERC> @pl fn op g k a = g a `op` k a
fn 其实就是 liftM2 。 liftM2 是专门用来把二元函数提升到 Monad 中去的,而 ((->) a) 正是 Monad 的实例。
Djinn通过type signature构造函数:
@djinn (a, b) -> c -> (b, c) ==> f (_, a) b = (a, b)
查一个monad transformer包装的类型:
@unmtl StateT s IO a ==> s -> IO (a, s)
查网址:
ERC> @where lyah
ERC> @where rwh
http://book.realworldhaskell.org/read/
ERC> @where wikibook
ERC> @where hackage
ERC> @where hackage-mirror
hdiff.luite.com:http://hdiff.luite.com/packages/archive/
ERC> @where xmonad
查软件包:
@hackage repa
查单词:
ERC> @wn applicative