在#haskell@freenode中使用lambdabot
来源:互联网 发布:linux系统安装工具 编辑:程序博客网 时间:2024/04/29 05:03
IRC可不只是闲聊的地方,她是你随时可用的好工具。IRC中有很多Bot可以随时为你服务。这里只收集了在#haskell@freenode中使用的lambdabot。(为了不影响别人,你最好发私信: /msg lambdabot ...)
查hoogle:
ERC> @hoogle applicative
<lambdabot> Control.Applicative class Functor f => Applicative f
<lambdabot> Control.Applicative module Control.Applicative
<lambdabot> package applicative-extras
查类型:
ERC> @type (<*>)
<lambdabot> Applicative f => f (a -> b) -> f a -> f b
运算:
ERC> > map ((&&) <$> (>3) <*> (<5)) [1..9]
<lambdabot> [False,False,False,True,False,False,False,False,False]
ERC> @let a...b = [a..b]
<lambdabot> Defined.
> 1...20
<lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
大家知道do是语法糖,可用@undo还原:
ERC> @undo do { Just y <- x; z }
<lambdabot> x >>= \ a -> case a of { Just y -> z; _ -> fail ""}
查实例:
@instances Monad
<lambdabot> ArrowMonad a, ContT r m, ErrorT e m, IO, Maybe, RWST r w s m,
ReaderT r m, ST s, StateT s m, WriterT w m, []
查源码:
ERC> @src (<$>)
<lambdabot> f <$> a = fmap f a
ERC> @src foldr
<lambdabot> foldr f z [] = z
<lambdabot> foldr f z (x:xs) = f x (foldr f z xs)
ERC> @src foldl
<lambdabot> foldl f z [] = z
<lambdabot> foldl f z (x:xs) = foldl f (f z x) xs
ERC> @src Monad
<lambdabot> class Monad m where
<lambdabot> (>>=) :: forall a b. m a -> (a -> m b) -> m b
<lambdabot> (>>) :: forall a b. m a -> m b -> m b
<lambdabot> return :: a -> m a
<lambdabot> fail :: String -> m a
ERC> @source Data.List
<lambdabot> http://darcs.haskell.org/packages/base/Data/List.hs
看看是否有现成函数:
ERC> @pl fn op g k a = g a `op` k a
<lambdabot> fn = liftM2
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
<lambdabot> http://www.learnyouahaskell.com/
ERC> @where rwh
<lambdabot> http://www.realworldhaskell.org/blog/
http://book.realworldhaskell.org/read/
ERC> @where wikibook
<lambdabot> http://en.wikibooks.org/wiki/Haskell
ERC> @where hackage
<lambdabot> <http://hackage.haskell.org/package/>
ERC> @where hackage-mirror
<lambdabot> remote-repo:
hdiff.luite.com:http://hdiff.luite.com/packages/archive/
ERC> @where xmonad
<lambdabot> http://xmonad.org/
查软件包:
@hackage repa
<lambdabot> http://hackage.haskell.org/package/repa
查单词:
ERC> @wn applicative
<lambdabot> *** "applicative" wn "WordNet (r) 3.0 (2006)" [13:46]
<lambdabot> applicative
<lambdabot> adj 1: readily applicable or practical [syn: {applicative},
<lambdabot> {applicatory}]
- 在#haskell@freenode中使用lambdabot
- 回顾:在生产环境中使用Haskell
- haskell使用技巧
- Haskell
- Haskell
- Haskell之列表的使用
- haskell及ghc入门使用
- 使用Haskell计算一个正整数二进制表示中最大的连续的1的个数
- freenode irc 如何注册
- 更新 freenode irc 邮箱
- IRC FreeNode Registeration
- 初用 IRC & freenode
- IRC 服务以及freenode
- Haskell 笔记(一)开始使用
- ask question on freenode IRC
- haskell环境及sublimehaskell在win10上配置
- Haskell学习笔记 --- GHCi中如何敲入多行代码
- 使用Haskell编写的Yi-义编辑器
- HEX文件和BIN文件总结及hex文件流转bin文件流示例代码
- Nand Flash原理分析与编程
- 各大公司应聘电子类题目精选
- xcode 添加Icon的方法
- C++高频面试题
- 在#haskell@freenode中使用lambdabot
- MD5中使用16进制消息摘要
- USB2.0 A型、B型、Mini和Micro接口定义及封装
- Ubuntu下让Aptana能够Debug调试Ruby代码
- tomcat server.xml配置详解
- Using CURL to download a remote file from a valid URL in c++
- BT搜索
- Socket粘包问题
- 2012春节长假IT系统运维支招之管理篇