Forwarded from dnaugsuz
可是 JS 是 duck typing(动态类型) ,设计非常不严谨
C++ 稍微好一点,但是非常混杂,许多语言特性用 template<> 做
C++ 稍微好一点,但是非常混杂,许多语言特性用 template<> 做
Forwarded from dnaugsuz
C语言没自动内存管理/封装,经常处理buffer
C++也没,但有class和unicode兼容(mbstr)
C++也没,但有class和unicode兼容(mbstr)
Forwarded from dnaugsuz
真正学术的是 Haskell, Scala 这类,如果你愿意了解还有 Prolog, Coq 这种更学术的
曾经拿 Haskell 写过个计算器
曾经拿 Haskell 写过个计算器
GitHub
duangsuse-valid-projects/BinOps
#️⃣ Simple binary operation calculator, supports logN, sin, cos, tan, hexadecimal numbers - duangsuse-valid-projects/BinOps
Forwarded from dnaugsuz
Haskell 的概念就是没有顺序执行,只是一群 (1::Int) (""::[Char]) 这样的“对象”在其范畴内不断变形而已
这种,本质上就是完全
[n+1 | n<-[0..9]] == [1,2,3,4,5,6,7,8,9,10](add a b)
add 0 n = n
add i n = add (i-1) (n+1) 这种,本质上就是完全
(add 2 0) == (add (add 0 1) 1) 的那种等式,模式匹配的变形规则,不像是程序Forwarded from LcdDem
evalBin :: (Eval a) => (a -> a -> a) -> Ast -> Ast -> a
Forwarded from dnaugsuz
(x :: a) 是
我真是累了,懒得和那群中文都不会说的大佬继续学那些一大堆名词的概念
现在在学实际点的可复用编程以及编译原理
val x: A 的意思a -> b -> c是 (A) => ((B) => C) 的意思我真是累了,懒得和那群中文都不会说的大佬继续学那些一大堆名词的概念
现在在学实际点的可复用编程以及编译原理
Forwarded from LcdDem
a -> b -> c是 (A) => ((B) => C) 的意思这种描述和haskell文档里的一模一样
Forwarded from dnaugsuz
往编译原理—解析器上, (->) 是中缀(infix)操作(或言运算)符,它是“右结合(right associative)”的,所以并排 a->b->c 是 a->(b->c) 的意思
JS 里 1**3**2 == 1*9
JS 里 1**3**2 == 1*9