This email and any attachments to it may be confidential and are intended solely for the use of the individual to whom it is addressed. If you are not the intended recipient of this email, you must neither take action based upon its contents, nor copy or show it anyone. Please contact the sender if you believe you have received this email in error.
--
You received this message because you are subscribed to the Google Groups "Eve talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to eve-talk+u...@googlegroups.com.
To post to this group, send email to eve-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/eve-talk/0b5f3317-e37f-4443-8b20-06bd2f82a4af%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
This email and any attachments to it may be confidential and are intended solely for the use of the individual to whom it is addressed. If you are not the intended recipient of this email, you must neither take action based upon its contents, nor copy or show it anyone. Please contact the sender if you believe you have received this email in error.
--
You received this message because you are subscribed to the Google Groups "Eve talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to eve-talk+unsubscribe@googlegroups.com.
To post to this group, send email to eve-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/eve-talk/6270381c-d72d-466a-80db-182829fefbbe%40googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to eve-talk+u...@googlegroups.com.
To post to this group, send email to eve-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/eve-talk/0fcf6c24-40ad-4b8f-a682-fe2701246e63%40googlegroups.com.
It's a tough problem and has pretty far reaching consequences. Allowing something like a left join to enable counting the empty set would force us into introducing null to the language, which we've tried very hard to keep out. Null is disastrously bad for programming semantics in general and it also has serious implications on the kind of optimizations and analysis we can do. So we'd have to be talking about a pretty fundamental issue before the tradeoffs might work out.
count[given: x]
To view this discussion on the web visit https://groups.google.com/d/msgid/eve-talk/1dd790d7-6434-4336-aefe-a14396707066%40googlegroups.com.
We could say well then this just doesn't return a result for that class, because it also references student, but now we're getting into rules that become very hard to reason about. What are the boundaries? What affects what here? If I put student in a different div, would the class div then show up?
If we allowed that, what happens if instead of drawing divs, this was purchasing food? Is it ok that some of my commits went through while others didn't? How would I reason about that partial failure?
A valid solution to those questions would be explicit subqueries
To view this discussion on the web visit https://groups.google.com/d/msgid/eve-talk/068a328b-4efc-408b-9587-3deb15efee06%40googlegroups.com.
a = [#person] b = [#person name]
if a != b then browser ← [#div text: "Warning: some people do not have names!"]
browser = {}
{
a = [#person]
b = [#person name]
if a != b then browser ← [#div text: "Warning: some people do not have names!"]
}
{
c = [#customer] ← customers
number = count[given: c]
browser ← [#div text: "Found {{number}} customers."]
}
{
browser ← [#label text: "Enter your name: ", children: [#input type: "text"]]
[#input value] ← browser
browser ← [#div text: "Hello {{value}}!"]
}
search celia = [#Celia]
bind celia <- [#student grade: 10, school: "East"]
celia = [#Celia]celia ← [#student grade: 10, school: "East"]
[#Celia] ← [#student grade: 10, school: "East"]
search
[#friends person1 person2]
bind
person1.friend += person2
person2.friend += person1
[#friends person1 person2]
person1.friend ← person2
person2.friend ← person1
square(x) = [
value: x * x
]
x = 5
s = value ← square ← x
browser ← [#div text: "Squaring {{x}} yields {{s.value}}."]
square ← x
square = [
x: 5
value: 25
]
To view this discussion on the web visit https://groups.google.com/d/msgid/eve-talk/2b77f7c0-1d9b-4524-a47b-39b1786e6dc0%40googlegroups.com.