Alexander Burger <a...@software-lab.de> writes:

Hi Alex,

>> : (de +Test
>>    (T (Hi) (=: hi Hi))
>>    (hi> (Nm) (or (text (: hi) Nm) "Dear Sir or Madam,")) )
>> -> +Test
>
> .. while this is half of the lunch ...
>
>> : (hi> Foo "Alex")  
>> !? (hi> Foo "Alex")
>> hi> -- Undefined  # => WHY?
>
> .. it is better (as Joe Bogner suggested) to use 'dm'.
>
> The reason is that 'dm' does a little more: It also defines the symbol
> 'hi>' to
> behave as a sender of messages to objects, equivalent to
>
>    : (setq hi> meth)
>    -> 22951574276
>
> With that, the following works
>
>    : (hi> Foo "Thorsten")

Ok, I see.

But, in a source file it's obvious how to use (class) and (dm)

(class 1 ...)
(dm ...)
(dm ...)

(class 2 ...)
(dm ...)
(dm ...)

The reader seems to remember which class was defined last, and
associates the following methods to that class.

How to use (class) and (dm) in a program is not that obvious for me:

:(de foo (ClsNm MethNm) (class ~(any (pack '+ ClsNm))) (dm ~(any (pack
MethNm ">") (X) (+ 1 X))))
-> foo
: (foo "Bar" "plus")
!? (val (setq *Class (car Lst)))
270136 -- Variable expected
'))))

Would you rather write the classical definitions to a file and then load
that?

-- 
cheers,
Thorsten

-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe

Reply via email to