Monad

“Monad不过就是自函子范畴上的幺半群,有什么问题吗?”

Haskell列表生成式

上一周《计算概论(A):函数式程序设计》课上讲到了列表生成式(list comprehensions),可以理解成是Haskell语言的一个语法糖(syntactic sugar)。这里我们将介绍Haskell 2010 Report(1)中给出的一种转译方案(translation strategy),可以用来把一切列表生成式翻译成普通的函数调用结构;此外,我们还将介绍列表生成式的Monad翻译,并介绍GHC的两个扩展:Monad生成式(moand comprehensions)和并行列表生成式(parallel list comprehensions)。

阅读更多

Haskell运算符全解

今天的《计算概论(A):函数式程序设计》课上讲到了运算符和运算符部分应用(operator sectioning)。这里将详细总结了Haskell中和运算符有关的大部分内容,作为补充和备忘。

阅读更多

在Windows上安装Haskell

由于本学期北京大学开设《计算概论(A):函数式程序设计》课程,很多同学在Windows下安装Haskell开发环境遇到困难。这里我们描述在Windows上使用stack安装Haskell开发环境的方法。

阅读更多

铅灰色的命运:读金庸《连城诀》

本文是2019秋季学期《金庸小说研究》课程的期末作业,是细读金庸《连城诀》的报告。在作品的整体结构上,通过与《安德的游戏》的对比,希望能够展现不同的人物性格、社会环境如何影响主角同悲剧命运的抗争;从读者的角度,这些不同又如何影响我们对这命运悲剧的审美。在典型情节“万震山砌墙”上,通过与《黑猫》的对比,讨论这一情节的相似与不同,展现金庸先生与爱伦·坡不同的创作目标和艺术理念。

阅读更多