Haskell
天涯古巷
诗和远方
展开
-
Haskell 状态Monad (State Monad)的理解
1、State s a数据类型State s a是一种用来封装状态处理函数(又叫:状态处理器):\s -> (a,s’)的数据结构,因为State封装的是一个状态处理器(state processor)而不是状态s本身,所以称State为State类型(type)是不准确的。newtype State s a = State { runState :: s -> (a,s) }-...原创 2019-12-07 08:55:07 · 2352 阅读 · 0 评论 -
Haskell 通过惰性计算来实现广度优先编号 Breadth-first Numbering
The code that follows sets up the defining system of equations:Streams (infinite lists) of labels are used as a mediating data structure to allow equations to be set up between adjacent nodes withi...原创 2019-12-05 00:39:48 · 241 阅读 · 0 评论 -
Haskell 对functor和applicative的理解
对<*>和<$>的理解如果我们要运算1+2的话我们直接写:1+2,这样就会返回结果3.但是,如果我们要计算列表里面的数值怎么办呢?例如:我们想计算 [1] + [2],我们希望haskell能计算出的结果是[3]这时候<*>与<$>的作用就出来了,通过下面的表达式我们可以得到结果[3](+) <$> [1] <*> ...原创 2019-11-28 22:37:34 · 667 阅读 · 0 评论