11 2021 档案
摘要:Agda的类型系统⾜以将任意命题表示⼀个类型,⽽其类型中的元素是该命题的证明。 “类型即证明” 逻辑与计算之间最深刻的联系是一种双关。 「命题即类型(Propositions as Types)」 的学说断言,形式化的结构可以按两种方式看待:可以看做逻辑中的命题, 也可以看做计算中的类型。 此外,相
阅读全文
摘要:发现一个非常不错的资源: https://agda-zh.github.io/PLFA-zh/ 良心翻译啊,界面也简单明了 1.优先级 infixl 6 _+_ infixr 7 _*_ 定义加法是左结合的 优先级6 定义乘法是右结合的 优先级7 依赖函数 (Dependent Functions)
阅读全文
摘要:adga 下午考完期中考了,感觉不咋滴... 算了,扔掉 haskell ,我们来玩个新的东西 agda 首先,安装它十分的麻烦...尤其是 windows 中文版 其次,我惊奇的发现,agda写出的程序不能运行 ??? 主要用做定理证明器 (load命令 C+c C+l data Bool : S
阅读全文
摘要:List comprehension 序列内涵??恕我英语垃圾翻译不出来 但是它是一种应用在序列上的函数,写起来就像集合一样 相当于是用旧序列生成新序列,不妨翻译为序列生成 比如 [x^2 | x <- [1..10]] --[1,4,9,16,25,36,49,64,81,100] [(x,y)
阅读全文
摘要:Haskell学习笔记--函数定义 if 语句 signum :: Int -> Int signum n = if n < 0 then -1 else if n==0 then 0 else 1 Guarded equtions signum n | n > 0 = 1 | n < 0 = -1
阅读全文
摘要:haskell是个神奇的语言。 函数式编程,我的理解是它讲所有东西都整成函数来实现。 比如说循环结构--递归函数 数据结构--构造函数 .... 所以整个程序就是一个个函数套在一起。 比较有意思的是后面关于functor、monad的升格操作 还有对于副作用(IO)等的实现 第一个程序(sum su
阅读全文
摘要:Haskell学习笔记--The state monad 状态变换器 快快快在回宿舍前搞完 失败了 状态变换器 type ST a = State -> ( a , State ) 返回变换后的状态和一个参数a type定义的类型不能被弄成monad,所以改成用newtype newtype ST
阅读全文
摘要:Monads 翻译叫 “单子” 或者 “一个自函子上的幺半群” 好吧除了让人费解没有什么用 同样举一个书上的例子 data Expr = Val Int | Div Expr Expr eval :: Expr -> Maybe Int eval (Val n) = Pure n eval (Div
阅读全文
摘要:Haskell 学习笔记 -- functor / applicative 这部分肯定是 Haskell 中最最抽象的了,我上课就没懂( 还有什么范畴论,自闭了 Functor 函子 函子的意思是一类容器,它里面可以装各种东西 比如 [] \ Maybe \ Tree 要让一个数据结构成为 Func
阅读全文
摘要:Haskell学习笔记--IO (是IO不是OI 下周考试,赶紧冲刺 data IO a A value of type IO a is a computation which, when performed, does some I/O before returning a value of ty
阅读全文