oldhu's
Posts
06
Sep 2022
函数式编程在前端的应用:Elm和re-frame
Elm Elm启发了Redux和Vuex,在github上有专门的 elm-architecture 主题。 Elm本身是一个函数式编程语言,同时也是一个Web框架。整个Web框架的核心数据流,类似于一个reduce函数:当前状态 ->...
05
Sep 2022
范畴论基础(10) - Kleisli Arrow
一个返回容器类的函数,签名是 f :: a -> m b,这里的类型 m,如果是个 Monad,那这个函数可以被称为 monadic function。 如果再来一个 monadic function,签名是 g :: b ->...
31
Aug 2022
ClojureScript中的goog.DEBUG
goog.DEBUG 谁来设置? shadow-cljs会自动设置,参考这里 ^boolean 是什么 re-frame的template中会自动生成一个变量,其中使用了 ^boolean 这个type hint (def debug? ^...
29
Aug 2022
Reduce与Transducer
reduce/foldl/foldr reduce是函数式编程中用于处理列表(数组、序列等可迭代数据结构)一个最重要的函数,haskell中是foldl和foldr。其中foldl与reduce含义相同,是从列表的最左面一个元素开始执行,f...
26
Aug 2022
函数式编程的一些内在逻辑
函数式编程想解决什么问题 函数式编程想消除程序的复杂性。 在 Out of the Tar Pit 一文中指出,程序的复杂性的最主要来源是状态管理,以及状态管理带来的分析与理解负担。 举例来说,维护一个大型的系统中的函数,如果某个函数读取或...
18
Aug 2022
Haskell中foldl与foldr的区别
大部分其它语言中的reduce,都是从最左面的元素开始迭代的,相当于foldl foldr是lazy的,可以用于无限的流式数据 foldr支持短路运算,foldl不支持,以下代码可以正确返回False,如果是foldl就会死循环 fold...
← Prev page
Next page →