[Haskell-cafe] A voice in the desert... (Was: Is lazyness make big difference?)

jerzy.karczmarczuk at info.unicaen.fr jerzy.karczmarczuk at info.unicaen.fr
Thu Feb 15 09:21:22 EST 2007

Citing the quoted citation, or the cited quotation, or whatever: 

>> > According to one guy's analogy: the Real World is strict - in order to
>> > drink tea, you have to put the kettle on the fire, wait until water
>> > boils, brew tea and then drink. Not the kettle is put on the fire, 
>> > water boils and the tea is brewed when you take the empty cup to 
>> > start drinking. 

etc. etc.... 

I have been advocating for years that independently of theoretical
advantages, and some nice realizations (Bird et al), there is something
more. The laziness is a terric ALGORITHMIC TOOL, making it possible to
write equations, with intricate cross-reference between variables, and
to transform them without moving a finger into implementable algorithms. 

There are no miracles, and if a variable references another one, which
will be instantiated later, it cannot use directly the concerned values.
But plenty of algorithms *may* be effective, since they defer the access
to those "future" objects. I wrote a bunch of papers on this... 

Getting back to the Real World. The main issue - in my opinion - is that
we do not code the Real World, whatever may be your personal philosophy.
The models we code bear some peculiar relations to the models we *see*
in our Plato cavern. Take for a pedagogic example, the issue of robotics,
or, if you prefer, the animation of humans/animals, etc. 

The physical causality works as follows. The brain issues the orders which
propagate sequentially through the nerves, make the articulations and the
limbs move, and *finally* the end effector - the hand - grasps the kettle
and put in on the fire. Anybody protests? 

Now, a robot, or an animated personage has a *scenario* to obey, to grasp
the damn kettle, and to put it on the fire. 

The intermediate limbs and articulations must move accordingly. Now you
will code all this...
And you fall well inside the domain called the Inverse Kinematics issue,
which may demand some horrible calculi, such as the evaluation of the
pseudo-inverses of Jacobi matrices, but doesn't matter. You must *reason*
differently. The hand "pulls" the elbow, which pulls the arm, which "says":
"may dear brain, I need the following commands from you, in order that our
terminal effector obey its scenario..." 


Folks, this is no science fiction, but *ALL COMPLICATED ANIMATIONS* are
done in this way. The IK is an established industrial domain, and in my
humble opinion, the laziness IS the tool to code it in a readable manner
(I work on this right now, but slowly...) 

Jerzy Karczmarczuk 

PS. BTW. The True Real World is quantum, not classical. A bottle of
the most expensive champagne I can afford, to a guy who will convince
me that the quantum world is strict in the computational sense of this
word. In my opinion this category is not applicable at all... 

More information about the Haskell-Cafe mailing list