What are the nodes in a Visual RA?
Quote from johnwcowan on March 24, 2020, 12:27 pmQuote from AntC on March 24, 2020, 1:29 amI have to disagree about comparing total functional programming/avoiding ⊥ aka 'bottom' with excising SQL NULL.
I simply meant that the arguments are isomorphic, not that they are identical. By making ⊥ impossible, TFP logic is truly two-valued as it cannot be in partial languages, making it simple to reason about. See section 2.2 (p. 754, physical PDF page 4).
D&D's arguments are that naive programmers end up in total confusion with 3VL; sophisticated programmers can work round it at cost of obfuscated code and subtle bugs; and the PL's type 'system' (if that's the right word for SQL) can give none of the static guarantees we'd like a type system to give.
I think the same is true, but doubled and in spades, when programming in a partial language.
As for NULL, my every attempt to work out what it would mean to have it as an ordinary value whose principal type is Ω falls down on the question of its being a boolean, which I think cannot be made both consistent and useful.
Quote from AntC on March 24, 2020, 1:29 amI have to disagree about comparing total functional programming/avoiding ⊥ aka 'bottom' with excising SQL NULL.
I simply meant that the arguments are isomorphic, not that they are identical. By making ⊥ impossible, TFP logic is truly two-valued as it cannot be in partial languages, making it simple to reason about. See section 2.2 (p. 754, physical PDF page 4).
D&D's arguments are that naive programmers end up in total confusion with 3VL; sophisticated programmers can work round it at cost of obfuscated code and subtle bugs; and the PL's type 'system' (if that's the right word for SQL) can give none of the static guarantees we'd like a type system to give.
I think the same is true, but doubled and in spades, when programming in a partial language.
As for NULL, my every attempt to work out what it would mean to have it as an ordinary value whose principal type is Ω falls down on the question of its being a boolean, which I think cannot be made both consistent and useful.