Hutton's Razor是一种简单的表达式语言,带有常量和加法:
data HR = Const Int
| HR :+: HR
eval :: HR -> Int
eval (Const n) = n
eval (e1 :+: e2) = eval e1 + eval e2
它出现在网络上的许多编程示例中,例如 [ 1 , 2 , 3 , 4 ]。有谁知道它最初是在哪里定义的,也许是 Graham Hutton 在一篇论文中定义的?
我能找到的最早提到是在 1998 年,在 Hutton 的Fold and Unfold for Program Semantics的第 2.1 节中。
Hutton 和 Wright 的 2004 年“正确编译异常”描述了这种语言。它没有使用术语“Hutton's Razor”(我们也不希望它使用),但它引入了这种最小的语言,并有足够的动机暗示这种激进的方法没有考虑到现有技术。关于描述这种语言的“赫顿剃刀”的第一个造词,我真的不知道......