这是一个通过 Haskell 实现的、惰性求值的纯函数式编程语言 toy project,支持:
- 原生的整数类型。
let表达式。Pack {t, n}构造子以及case表达式。- Lambda 表达式。
下面是一段例程。
main = primeSum 100;
primeSum n = sum (take n primes);
primes = sieve (from 2);
from n = Con n (from (n + 1));
sieve s =
case s of
| {0} -> Nil
| {1} p xs -> Con p (sieve (filter (\\ x . x % p != 0) xs))
end;参考资料:
最后,特别感谢北京大学的张伟、胡振江两位老师开设的 计算概论 A 实验班 / 函数式程序设计 课程,让我能一窥函数式编程语言的魅力。