Possibly unrelated, but I also had to write my own `member?' when I
encoded a Bayesian spam filter in the Bayesian DSL I'm making. I didn't
want a distribution over all Racket values, I wanted one over {#t,#f}.
In fact, I'm going to have to wrap all the truth-valued functions
because of this.
When not doing probability, I use truth-valued functions while
pretending that they return actual booleans. I usually don't have to see
the this particular language wart, but TR makes it obvious.
(Don't get me wrong, it's great that TR can actually type this kind of
stuff! We wouldn't have TR otherwise, and that would be sad.)
I think we should retire this truthiness business, replace cond's `=>'
with something that lets you easily nest conds (I have a proposal ready
for this, and it is awesome), and stop using truthiness idioms. It's
obfuscating, it's hard on newcomers, it makes reasoning about return
values difficult, and it's very last-century.
Neil T
Shriram Krishnamurthi wrote:
In fact, I proposed adding the ? forms of these functions where the new
ones are strictly boolean.
These are essential for the SLs since the standard versions are useless
due to the true/false tests in the language.
On Nov 11, 2010 6:44 AM, "Jay McCarthy" <jay.mccar...@gmail.com
<mailto:jay.mccar...@gmail.com>> wrote:
I agree with Mark. I often write ? versions of functions like member
in my code when I write it the first time to show the "predicate
intent".
Another important case is when you don't want internal values to
"escape" to the client because you forget that member/and/etc return
the thing, not #t.
Jay
On Thu, Nov 11, 2010 at 6:07 AM, Sam Tobin-Hochstadt
<sa...@ccs.neu.edu <mailto:sa...@ccs.neu.edu>> wrote:
> On Thu, Nov 11, 2...
--
Jay McCarthy <j...@cs.byu.edu <mailto:j...@cs.byu.edu>>
Assistant Professor / Brigham Young University
http://faculty.cs.byu.edu/~jay
"The glory of God is Intelligence" - D&C 93
_________________________________________________
For list-related administrative tasks:
http://...
------------------------------------------------------------------------
_________________________________________________
For list-related administrative tasks:
http://lists.racket-lang.org/listinfo/users
_________________________________________________
For list-related administrative tasks:
http://lists.racket-lang.org/listinfo/users