抽象编程
文章平均质量分 76
杨过悔
这个作者很懒,什么都没留下…
展开
-
前言
1.之前学了编程领域的FP部分,觉得他比较抽象,但是觉得可以用得巧妙,个人觉得随着大数据的时代的到来,他的作用也会更加突出.同时我们也该从着重实际编程(一行一行的敲)到具备抽象性编程的跨越.最近课程少了,可以留点时间来好好总结FP的scalaz部分,scalaz部分基本是haskell的翻译版本,但他比haskell实际可用,所以我打算重新阅读scalaz,把重要的部分记录下来方便以后的使用原创 2015-11-06 10:09:15 · 292 阅读 · 0 评论 -
对前面的小结
1.可能有些人对我之前的讲解的内容,无法接受!当然我是没讲解的那么清晰清楚,因为到目前为止的知识都是比较易懂的,但是还是我们来小结一下之前的知识吧,这样比较好容易下面的步骤 2. 我们的所有操作几乎是围绕monad展开的,说到底就是操作monad,如提出单子内容计算然后继续包裹monad所以我这里主要讲解monad的对等操作,和非对等操作 对等操作,就是monad的原创 2015-11-07 10:36:45 · 321 阅读 · 0 评论 -
Writer和Reader
这两个monad是值得学习和使用的(尤其是Reader) 1.Writer这个monad是将附加一个monoid到指定的一个值,我们当且把他看作是其名字说的write的过程 最简单的Writer Monadsealed trait WriterT[F[+_], +W, +A] { self => val run: F[(W, A)] def written(原创 2015-11-07 00:00:55 · 944 阅读 · 0 评论 -
Functor与fmap
一. Functor俗称仿函数或者函子,他是一个类型类,我们先看看他的结构scala> :kind Functorscalaz.Functor's kind is X[F[A]]可以看出它是一个类型构造器的构造器,但是不像List等序列(强调的是容器),我们这里X并不是像F容器,我们可以把X看作action集合,所以我猜他才被称呼为Functor的Functor里最重要原创 2015-11-06 11:41:30 · 1138 阅读 · 0 评论 -
kind与type
1.上篇文章我们讲解了Functor,下面我们有必要对类型和种类做一个详细的讲解,这里我们需要理解两个知识点(1).first-order-kinded type(2).higher-kinded type 因为我们需要进入抽象性的编程,所以对数据类型要有一个理性的认识,我们先打个比方函数与高级函数,这里我姑且认为你已经知道什么事高级函数了,同样的,类型也有高低之分,这里我原创 2015-11-06 18:27:29 · 898 阅读 · 0 评论 -
Category theory
1.对于Category theory,自然有更多的书籍和文章,我们不可能全部学,毕竟我们就讲究用的.但是如果你有时间阅读更是好了,毕竟学科知识是彼此渗透的,例如高数,线性等看似对生活没什么作用,但这些至少开拓了你的大脑(被开拓的大脑能否装得下更多的信息量呢?哈哈...不扯) 2.这里转载一篇文章,可大致知道什么Category theory The most acc转载 2015-11-07 13:47:55 · 852 阅读 · 0 评论 -
状态相关操作
1.在Fp中是绝对不推荐写出带有外作用的函数的(也就是尽量保持纯函数),当然scalaz也提供了对应的相关的操作来尽量保持我们的函数的纯净StateT让结果附带一个状态变量例如有些计算的签名s -> (a, s)接着我们看看State monad type State[S, +A] = StateT[Id, S, A] // important to defi原创 2015-11-07 10:19:05 · 535 阅读 · 0 评论