←back to thread

Parse, don't validate (2019)

(lexi-lambda.github.io)
398 points declanhaigh | 1 comments | | HN request time: 0s | source
Show context
bruce343434 ◴[] No.35053912[source]
Note that this basically requires your language to have ergonomic support for sum types, immutable "data classes", pattern matching.

The point is to parse the input into a structure which always upholds the predicates you care about so you don't end up continuously defensively programming in ifs and asserts.

replies(12): >>35054046 #>>35054070 #>>35054386 #>>35054514 #>>35054901 #>>35054993 #>>35055124 #>>35055230 #>>35056047 #>>35057866 #>>35058185 #>>35059271 #
PartiallyTyped ◴[] No.35054993[source]
I don't think sum types is necessary. TypeScript's gradual typing should suffice to capture this.
replies(1): >>35060447 #
1. PartiallyTyped ◴[] No.35060447[source]
I was wrong.

See this fantastic reply by the author:

https://news.ycombinator.com/reply?id=35059519