Comments
Hacker News
by eru
by _alternator_
by veqq
:set {:job "Engineer"}
:where |(= ($ :job) "Developer")
What is going on there in that where syntax?by bruce343434
Anyway the way I learned it is:
* for a given lambda expression, all evaluation orders which reduce to a normal form will reduce to the same normal form.
* if a lambda expression has a normal form, the 'lazy' way (normal order, leftmost-outermost-reduction, call-by-name, call-by-need) will find it.
Actually on re-reading, the article did mention confluence of the untyped lambda calculus, but only went as far as saying that the different evaluation order leads to different termination results, which is not quite as strong as saying the lazy way will find the terminating path if it exists.
by mrkeen
Join the discussion
Write your take first — we'll ask for email only when you're ready to publish.
- Hacker News
- See also https://dhall-lang.org/by eru
- A quick skim of the article suggests it's a study of the implications of allowing query planning in programs which are notionally finite but may have unbounded computation. Interesting.by _alternator_
- https://codeberg.org/veqq/declarative-dsls is built around a query language working on tables/dataframes, hashmaps, arrays, strings etc. in the same way. I ended up allowing things like :where :group-by etc. in `select` go in any order and then allowing you to use ->> macros to micromanage the execution order.by veqq
What is going on there in that where syntax?:set {:job "Engineer"} :where |(= ($ :job) "Developer")by bruce343434- I expected to see mention of the Church-Rosser theorem, which may have just turned 90 years old. Pretty good vintage for a comp sci theorem.
Anyway the way I learned it is:
* for a given lambda expression, all evaluation orders which reduce to a normal form will reduce to the same normal form.
* if a lambda expression has a normal form, the 'lazy' way (normal order, leftmost-outermost-reduction, call-by-name, call-by-need) will find it.
Actually on re-reading, the article did mention confluence of the untyped lambda calculus, but only went as far as saying that the different evaluation order leads to different termination results, which is not quite as strong as saying the lazy way will find the terminating path if it exists.
by mrkeen
Related stories
Computational Balloon Twisting: The Theory of Balloon Polyhedra [pdf]
cccg.ca · 48 points · 0 comments
Decoding the obfuscated bash script on a Uniqlo t-shirt
tris.sherliker.net · 1063 points · 181 comments
StreetComplete: Fixing OpenStreetMap, one tiny quest at a time
streetcomplete.app · 761 points · 182 comments
Every new car sold in the European Union must include a driver monitoring camera
allaboutcookies.org · 736 points · 969 comments
Chat Control 1.0 and 2.0 Explained
fightchatcontrol.eu · 645 points · 238 comments
Microsoft fire idTech team at Id software
gamefromscratch.com · 597 points · 533 comments