3 ms·
I like that he's going to introduce quantifiers into his language (e.g. some(X) > every(Y)). What I'm concerned about tho is that this will have some very pecul
by psygnisfive 17y ago
I like that he's going to introduce quantifiers into his language (e.g. some(X) > every(Y)). What I'm concerned about tho is that this will have some very peculiar "errors" for some people. It seems like he's using what we linguists would call de re scope, which is to say the first quantifier has higher scope than the second one.
For example, using English, and translating into first order logic with restricted quantifiers, as well as Ruby:
Some dog chased every cat
∃x:dog(x)[ ∀y:cat(y) [chased(x,y) ]]
dogs.some? { |x| cats.all? { |y| chased x, y }}
Unfortunately, the English sentence is known to have another reading, one where each cat is chased by some or other dog, maybe not the same one for each cat:
∀y:cat(y)[ ∃x:dog(x)[ chased(x,y) ]]
cats.all? { |y| dogs.some? { |x| chased x, y }}
Which means some poor coder might end up typing some(dog).chased(every(cat)) in his language, thinking he's getting the ∀ > ∃ reading (the second one above) and bamph, weird behavior. Even if you're familiar with how quantifiers work in this language, the similarity to english in this regard might easily lead someone to absentmindedly make this error.
That's not to say that he shouldn't have quantifiers -- I think we need some interesting natural-language like things like quantifiers in experimental languages -- but it's definitely something he should watch out for.