我一直在学习Haskell一段时间,我学习了一些新的编程语言,我做了一个小项目,需要使用邮件服务器并发布RSS和Atom内容.唯一的问题是,我似乎无法找到适合这些的包装,或者至少找不到任何包装评论.
所以我会问社区:
用于与邮件服务器交互的任何首选包?(IMAP,POP3等)
用于发布RSS和/或Atom提要的任何优惠包?如果没有,那么一般XML的首选包是什么?
对于简约,低摩擦的网络服务器的任何建议,将所有这些绑定在一起?
提前致谢.
在一系列帖子中, Eric Lippert概述了.NET类型的所谓"Monad模式",它有点像monad和implements实现返回并绑定其中一些.
作为monadic类型的例子,他给出了:
Nullable<T>Func<T>Lazy<T>Task<T>IEnumerable<T>我有两个问题:
我得到Nullable<T>的有点像MaybeHaskell,绑定几个Maybe动作代表一组可能在任何时候都失败的操作.我知道列表monad(IEnumerable<T>)代表非决定论.我甚至有点明白Func作为monad(Readermonad)的作用.什么是monadic sematnics Lazy<T>和Task<T>?绑定它们意味着什么?
有没有人在.NET中有更多类型的例子呢?
在Haskell中,我们有这个filterM功能.它的源代码是:
filterM :: (Monad m) => (a -> m Bool) -> [a] -> m [a]
filterM _ [] = return []
filterM p (x:xs) = do
flg <- p x
ys <- filterM p xs
return (if flg then x:ys else ys)
Run Code Online (Sandbox Code Playgroud)
从符号转换:
filterM :: (Monad m) => (a -> m Bool) -> [a] -> m [a]
filterM _ [] = return []
filterM p (x:xs) = p x >>= \flg ->
filterM p xs >>= \ys -> …Run Code Online (Sandbox Code Playgroud)