Re:Code is Engineering; Types are Science
by somewhereoutth on Monday April 06, 2020 @11:40AM
(#22794667)
but (for the simply typed LC anyway) the 'mechanism of action' is just the untyped LC under beta reduction surely? I mean, the type annotations don't actually do anything when the program is run/reduced?
[ Parent
| on HN ]
Re:Code is Engineering; Types are Science
by throwaway17_17 on Monday April 06, 2020 @12:01PM
(#22794834)
You are essentially identifying the semantic divergence between Church and Curry style types. Church-style or Intrinsically typed Lambda Calculus does not give any meaning to ill-typed expressions and there for beta-reduction can not proceed for these invalid expressions. Where as Curry-style or Extrinsically typed lambda calculus gives meaning to expression that do not consider the type alleged to be possessed by that expression.
Re:Code is Engineering; Types are Science
by somewhereoutth on Tuesday April 07, 2020 @07:10PM
(#22808457)
The crucial difference between Church and Curry is that Curry allows each term to be ascribed a set of types - perhaps 0, 1 or many - whereas Church insists on each term having exactly one (often annotated). Both are systems for proving type correctness of terms.