Re:The Logical Disaster of Null
by ivanhoe on Thursday May 10, 2018 @05:14AM
(#17037335)
But how do you handle those optional values then? Let's say you run a classifieds site, some of your users will probably prefer not to specify a price, it has to be an optional value. Or age field on a dating sites. How do you filter that data, or handle sorting on that field, without using null values to mark those that are undefined?
[ Parent
| on HN ]
Re:The Logical Disaster of Null
by Munksgaard on Thursday May 10, 2018 @05:33AM
(#17037414)
That has been done with option types in functional languages since at least the 80s. It's not hard.
e.g:
sum = 0
for entry in entries:
case (val):
null: pass
number n: sum += n
endcase
in pseudocode. Several languages have offered this since forever (eg. Haskell and Maybe).The fun part is that the typesystem enforces that you check all possible cases -- or only lets you explicitly un wrap potentially null values.
So it's not like a C programmer checking if (x == NULL) manually.
Re:The Logical Disaster of Null
by tigershark on Thursday May 10, 2018 @05:55AM
(#17037517)
Option types and comprehensive pattern matching in F#.
If you just need to filter them you can simply use Seq.choose.