Subject: close to final draft of the Lambda Calculus lecture

From: Shlomi Fish <[email-masked]>
Date: Thu, 18 May 2000 22:52:51 +0300 (IDT)

There's a rather finalized draft of the LC lecture I'm going to give to
the Haifux Linux club on the usual URL:

http://vipe.technion.ac.il/~shlomif/lecture/Lambda-Calculus/

Please read it if you'd like and send your comments and suggestions to me.

Omer Mussaev had some critique about it, but I think I'm going to keep it
as it is. I'm not a Scheme professional as Omer is (I consider myself a
perl expert above all :-)), but I think this lecture can give people the
taste of Lambda Calculus. If they won't to become experts they should go
to BGU and study it there.

Regards,

	Shlomi Fish

----------------------------------------------------------------------
Shlomi Fish        [email-masked] 
Home Page:         http://t2.technion.ac.il/~shlomif/
Home E-mail:       [email-masked]

The prefix "God Said" has the extraordinary logical property of 
converting any statement that follows it into a true one.

---

From: Omer Mussaev <[email-masked]>
Date: Sun, 21 May 2000 09:14:50 +0300

> to BGU and study it there.

And what for? Will you mention that lc is one of primary mechanizms in
decompilation?
no. will you mention that lc is used in hardware optimization? no. Will you
mention
that software pipelining techniques used in IA64 architecture are based on
typed lc?
no. will you teach people how to derive your own fixed points in order to
make your
programs run faster? no. Will people appreciate higher order recursion and
tail recursion
and continuation passing techniques, which enable you to write first-order
recursive
programs in silly languages?

I still have much critique on your lecture. I would say that this is not lc
lecture,
but rather "how to write perl in scheme".

It is worth noting that you are not willing to go to BGU yourself to get some
clue, but
rather dive deep in things you are not familiar with. I fear of harm that can
be done
and that people will not appreciate your lecture. However, there is a
possibility that
they will, and will ask you rather hard questions. For a nice question in lc,
consider
following:

let say you have 3 clauses:

(define X (lambda .....))  ;; x_f
(define O (lambda .....))  ;; o_f
(define _ (lambda .....))  ;; __f

and you have following clause:

(define next-board (lambda board) .......)

such that board is a combination of x_f, o_f and __f in similar form:
'((X O O)
  (X _ _)
  (_ O X))

and (next-board '((X O O) (X _ _) (_ O X))) will give you
'((X O O) (X _ _) (X O X)) or '((X O O) (X O _) (_ O X)) depending on
your assumption who is the player.

have a nice day.

--
Omer Mussaev    051-308-214   mailto:[email-masked]
systems programmer, Mercury Interactive/RND/Conduct/core

---

From: Shlomi Fish <[email-masked]>
Date: Sun, 21 May 2000 19:43:28 +0300 (IDT)

> And what for? Will you mention that lc is one of primary mechanizms in

You mean reverse-engineering. I thought so too.

> no. will you mention that lc is used in hardware optimization? 

As far as I can see LC is incredibly inefficient but if you say it is used
in hardware optimizations I'll take your word for it.

> no. Will you

Again, I take your word for it.

> programs in silly languages?

Well, my lecture is not about Scheme, it's about Lambda Caclulus. I'm not
very interested in teaching people about the philosophy of Scheme and
functional languages in general. Rather, I'm interested in showing how
everything can be implemented using (labda (p) ...) and (f x).

> but rather "how to write perl in scheme".

All right, let's say my Scheme code is not too Schemey. I'm not there to
teach people about Scheme. Functional programming alone, whether it be in
perl or Scheme or Haskell (which I'm learning right now) or whatever, can
easily take a few lectures. I'm here to teach them some quick and dirty
Lambda Calculus. That's my objective.

> they will, and will ask you rather hard questions. 

1. I'll try to answer them to the best of my knowledge.
2. I challenge you to give a lecture or a series of lectures that will
complement or remedy (your choice of phrasing) mine.

For a nice question in lc,

> your assumption who is the player.

Do you mean an LC program that solves a tic-tac-toe board from any given
state? I'll first have to figure out how to write a perl program to solve
that. Then I'll convert it to LC.

BTW, do you know of a pure LC program that solves the Hanoi Towers?
 
> have a nice day.

Likewise.

Regards,

	Shlomi Fish

---

From: Omer Mussaev <[email-masked]>
Date: Mon, 22 May 2000 11:08:57 +0300

> You mean reverse-engineering. I thought so too.

No, not at all. When you do reverse eng on code, you construct non-deterministic
parser, which will guess "what the hell that code was supposed to do". When
you construct lc-based decompiler, you are compiling code, you do not have to
guess anything.

> in hardware optimizations I'll take your word for it.

I think that linear algebra is incredibly inefficient too. lc is not a
programming language, lc is mathematical discipline. scheme is programming
language which has some abilities to "do lc".

> Again, I take your word for it.

You"d better read gmayer's intros, and think of bases.

> everything can be implemented using (labda (p) ...) and (f x).

What for, again? everything can be implemented in 0 and 1, too. I"d suggest
you to make a clear disclaimer, and tell people that you are not going to
teach scheme, or lc, but rather show them some nice tricks, which are side
effects of idea of function composition.

> Lambda Calculus. That's my objective.

lc can take 3 phds alone. Why won't you teach them first order predicate calculus?

or bolzano's numerals? again, lc is a branch of combinatorial logics, which
belong to math.

> 1. I'll try to answer them to the best of my knowledge.

Just do not make them feel that lc is Y-curry.

> complement or remedy (your choice of phrasing) mine.

I do not know lc enough to teach people. Neither am I willing to. Some lectures
in scheme - maybe, a "scheme book" - on its way, but lc? Do I have a phd in it
or something? I do not want to teach lc, besides the fact that I hate teaching.

> that. Then I'll convert it to LC.

hint: no side effects are allowed.

> BTW, do you know of a pure LC program that solves the Hanoi Towers?

when the deadlines will end, you"ll get one.

> ------------------------------------------------------------------------
> Up to 60% OFF food!
> Buy Now and Shipping is Free.
> http://click.egroups.com/1/4016/9/_/_/_/958927415/
> ------------------------------------------------------------------------
>
> To unsubscribe from this group, send an email to:
> [email-masked]

---

From: [email-masked]
Date: Mon, 22 May 2000 12:21:32 +0300

> when the deadlines will end, you"ll get one.

Just after hell freezes over? When RMS writes a propietory kernel in visual basic?

--
Chen Shapira	Web Developer and Linux Activist
The algorithm for finding the longest path in a graph is NP-complete.
For you systems people, that means it's *real slow*.