Final tagless And Object Algebras

这篇也算是抄的OLEKSANDR MANZYUK的博客,最近写个玩具的时候,发现在实现tagless-final的时候,Scala的一些不太方便的地方(existential types?),这些问题感觉DOT之前是很难解决了,不过索性还有其他的解决方案。

Akka Custom stream processing

有一些时候内置的akka的Graph不能满足我们的需求,需要自己订制Graph,最近写socks5的时候发现要自己搞,就学习一下。

Very Simple Algebraic Data Types

有两种ADT一种是abstract data types,另一种叫algebraic data types,前者常常在OO的语言出现,一般是各种泛型,比如一些容器类。而后者代数数据类型则是来自函数式编程。

写个小Parser Combinators (2)

继续上次的内容,上次虽然parser已经提供了~|等功能类似BNF的功能,但是我们感觉还是不够多,因为缺少诸如+*等重要功能,以及一些方便的脚手架。

写个小Parser Combinators (1)

最近有写个Parser的需求,回想起《Real World Haskell》以及《Functional Programming in Scala》各种书里面其实都有这个内容。Parser Combinators也并不是函数式语言的特例,javaANTLR4也是composable的。不过这确实是个内部DSL-Domain Specific Language的好例子,简单的例子难度也不高。