I remember, long, long, ago, as a Philosophy undergraduate, reading with great pleasure Peter Geach's explanation that all you needed to know about Truth is that the predicate 'is true' cancels quotation marks.
On 5/13/2021 at 3:53 PM, "Roger Hui" <[email protected]> wrote: > >> … but there are still people working as “programmers” who >obviously don’t >know this >> I’ve seen code segments featuring test clauses like >> if (mybool == true) >> embarrassingly often > >From *Some Exercises in APL Language Design ><https://www.jsoftware.com/papers/APLDesign.htm>*, §28: > >*28. Array Logic* > > x← 5 ¯2.7 0 6 > > (x>0)-(x<0) >1 ¯1 0 1 > > x × (x>0)-(x<0) >5 2.7 0 6 > >The expression (x>0)-(x<0) is probably the first APL one-liner >ever written >(*A Programming Language* ><https://www.jsoftware.com/papers/APL.htm>, 1962, >§1.4). What make it work are that propositions have result 0 or 1 >rather >than *true* or *false* and that functions work on entire arrays >rather than >just on scalars. > >Falkoff and Iverson explained the 0-1 definition in *The Design of >APL* ><https://www.jsoftware.com/papers/APLDesign.htm> in >characteristically >plain but telling language: > >A very general and useful set of functions was introduced by >adopting the >relation symbols < ≤ = ≥ > ≠ to represent functions (i.e., >propositions) >rather than assertions. The result of any proposition was defined >to be 0 or > 1 (rather than, say, *true* or *false*) so that it would lie in >the domain >of other arithmetic functions. … > >The adoption of the relation symbols as functions does not >preclude their >use as *assertions* in informal sentences. For example, although >one might >feel compelled to substitute “x≤y is true” for “x≤y” in the >sentence “If > x≤y then (x<y)∨(x=y)”, there is no more reason to do so than to >substitute >“Bob is there is true” for “Bob is there” in the sentence which >begins “If >Bob is there then …”. > >Knuth wrote enthusiastically about this (the 0-1 thing, not the >array >thing) in TNN ><https://arxiv.org/PS_cache/math/pdf/9205/9205211v1.pdf> 1992, >calling it Iverson’s convention or Iverson brackets ><https://en.wikipedia.org/wiki/Iverson_bracket> and saying that it >led to >“substantial improvements in exposition and technique”. If the >worked >examples in TNN look familiar it’s because the simplification steps >resemble APL golfing. > > > >On Thu, May 13, 2021 at 3:42 PM Hauke Rehr <hauke.rehr@uni- >jena.de> wrote: > >> that significant subdomain would be {0,1} >> >> in this domain, >> >> • both 0&= and =&0 are synonymous with -. >> while 1&= and =&1 are synonymous with ] >> >> • 0&~: and ~:&0 are synonymous with ] >> while 1&~: and ~:&1 are synonymous with -. >> >> • on a sidenote, >> ⟨=~ x⟩ is =’s identity element here >> ⟨~:~ x⟩ is ~:’s identity element here >> >> • so =/ (xs, x) is the same as =/ (xs, x, x, x) >> and ~:/ (xs, x) is the same as ~:/ (xs, x, x, x) >> >> put another way, if VOID is an empty structure, >> we get the identity element by >> >> (=/ VOID) which is the same as (=/ ;~ VOID) >> and >> (~:/ VOID) which is the same as (~:/ ;~ VOID) >> >> [Elijah’s example was VOID =: ''] >> >> >> … but there are still people working as “programmers” >> who obviously don’t know this >> I’ve seen code segments featuring test clauses like >> if (mybool == true) >> embarrassingly often >> >> >> Am 13.05.21 um 20:19 schrieb Roger Hui: >> > Not for any y. For y in a significant subdomain of f. >> > >> > >> > On Thu, May 13, 2021 at 11:10 AM Elijah Stone ><[email protected]> >> wrote: >> > >> >> The identity elements for = and ~: are 1 and 0 respectively, >as >> >> illustrated by: >> >> >> >> =/'' >> >> 1 >> >> ~:/'' >> >> 0 >> >> >> >> >> >> I expect the identity element for some function f to be the >value x such >> >> that, for any y, y -: y f x. But this is clearly not the >case here. >> >> >> >> Why not? >> >> -------------------------------------------------------------- >-------- >> >> For information about J forums see >http://www.jsoftware.com/forums.htm >> >> >> > --------------------------------------------------------------- >------- >> > For information about J forums see >http://www.jsoftware.com/forums.htm >> > >> >> -- >> ---------------------- >> mail written using NEO >> neo-layout.org >> >> ----------------------------------------------------------------- >----- >> For information about J forums see >http://www.jsoftware.com/forums.htm >> >------------------------------------------------------------------- >--- >For information about J forums see >http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
