Newbie questions about Pliant

Newbie questions about Pliant

Calling a method

Message posted by marcus on 2002/04/08 18:45:28
Let f be:

function f x y -> r
  arg Int x y r
  r:= x+y

A call to f could be written as

  (f 1 2)   

which can be represented by the following expression tree:

     f
    / \
   1   2

Let m be:

method x m y z -> r
  arg Int x y z r
  r:= x+y+z
   
A call to m can be written as

  (1 m 2 3)

Will the respective expression tree be

     1                      
  /  |  \
 m   2   3

The reason I am asking that is because the 'Pliant Syntax Design' page introduces
Pliant's syntax by showing some expressions and the respective expression trees.

And the way functions and methods differ, as far as evaluation is concerned, is
that the trees are traversed differently.

Message posted by pom on 2002/04/09 06:20:29
The expression tree corresponding to (1 m 2 3) is effectively
     
      1                      
   /  |  \
  m   2   3

when parsed. When compiled, the root node (1) will be compiled.
As it is an argument, the tree will be rewritten as


    '. m'                      
   /  |  \
  1   2   3

Will follow the call of the method m.