从零认识 Monad Posted on 2018-10-06 | 在交流中,有时候丢出一个“Monad”就可以把问题说清楚,但是我发现大多数人并不知道什么是monad,甚至有的没听说过。所以特此写一篇通俗易懂的文章来描述编程语言中的Monad。 读这篇文章前,你需要 写过java或c#(scala/kotlin等使用者估计也用过java,haskell/ml使用者 ... Read more »
异步IO是什么? Posted on 2018-06-03 | In Program | 什么是异步IO从API上来说,是一组非阻塞的IO API,不过这是废话。 换个角度:程序不因为IO调用而被阻塞,就可以说程序是异步的。 要理解这个回答,首先要知道什么是“异步”。 编程或者架构模型有4种。 1. 阻塞A调用B后,一直等着B返回结果。 这是最广泛使用,也是最简单的一种模型。普通的函数调 ... Read more »
临摹menhera酱 Posted on 2018-04-21 | 突然特别想画东西,于是买了个数位板。之前几乎是0基础,美术知识仅限于小学初中的美术课,对于手法,用色,构图没有任何经验。 在贴吧和B站搜了绘画、上色的手法,确实有一些收获。 第一周临摹了一本书上的人物,最后结果惨不忍睹。之后又尝试了fgo清姬的立绘,效果也不怎么样。在这期间也查阅了许多资料,了解了人 ... Read more »
Monad Posted on 2017-12-10 | In Lambda | Monad对于很多人来说,“Monad”是一个“神奇”的概念。这个概念首先在数学中被提出,用来简化一些复杂定理的描述。后来在Haskell中被使用。而实际上,所有主流高级语言都有Monad,只不过不一定被明确的标注出来,例如:ES6的Promise、Java的Optional。本文会通俗的描述什么是 ... Read more »
JSR223实现 Posted on 2017-09-17 | In Java | JSR223是一种Java标准,它为JVM上的非Java语言(主要是脚本语言)提供了一组标准接口。 目前几乎所有JVM脚本语言都会提供一个JSR223的实现,甚至对于groovy这种编译到字节码的语言也做了一套实现(虽说groovy确实就是脚本语言)。使用该实现最大的好处即:它是标准。 这套接口其实 ... Read more »
Y Combinator 推导 Posted on 2017-09-09 | In Lambda | 什么是Y CombinatorY Combinator这个东西,确实有些绕。 Y Combiantor在工程中几乎没有任何用处,可能用到它的场合,可以有无数种替代方案。它的存在仅仅是为了让lambda算子模型变得完备。 要解释什么是Y Combinator,首先得说明下何为lambda算子。 lam ... Read more »
Hello World Posted on 2017-09-09 | Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in ... Read more »