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

Hi Alex,

>> And property list extracted with 'lget' from a symbol would be 'true'
>
> You mean 'getl'

ups ...

> This is because the 'get' family of symbol property access functions use
> '==' (pointer equality) for searching.
>
> Example:
>
>    : (setq PList '(("val1" a b) ("val2" . c)))  # ((VAL VAL KEY) (VAL . KEY))
>    -> (("val1" a b) ("val2" . c))
>
>    : (putl 'A PList)                            # New property list for 'A'
>    -> (("val1" a b) ("val2" . c))
>
>    : (show 'A)                                  # 'A' has two properties
>    A NIL
>       c "val2"                                  # one with key 'c'
>       (a b) "val1"                              # and one with key '(a b)'
>    -> A
>
>    : (get 'A 'c)                                # We can find 'c'
>    -> "val2"
>
>    : (get 'A '(a b))                            # But not '(a b)' because they
>    -> NIL                                       # are not pointer-equal
>
>    : (get 'A (cdar PList))                      # (cdar PList) is (a b)
>    -> "val1"                                    # and pointer-equal

ok, thanks, I think now I got it more or less. 

-- 
cheers,
Thorsten

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

Reply via email to