guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Display on guile


From: Linas Vepstas
Subject: Re: Display on guile
Date: Thu, 5 Mar 2009 08:47:11 -0600

2009/3/5  <address@hidden>:
> hi Group,
>
> I executed these commands..
>
> $ guile
> guile> (define mc (cons 'a 'b))
> guile> mc
> (a . b)
> guile> (define ml (list 1 2 mc))
> guile> ml
> (1 2 (a . b))
> guile> (list mc 1 2 3)
> ((a . b) 1 2 3)
> guile> (define mh (make-hash-table 2))
> guile> (hashq-create-handle! mh 'one mc)
> (one a . b)
> guile> (hashq-create-handle! mh 'two ml)
> (two 1 2 (a . b))
> guile> mh
> #(((two 1 2 (a . b)) (one a . b)) ())
> guile> (use-modules (ice-9 pretty-print))
> guile> (pretty-print mh)
> #(((two 1 2 (a . b)) (one a . b)) ())
> guile>
>
> I was expecting handle:'one of hash:mh to be printed in parens as
> #(((two 1 2 (a . b)) (one (a . b))) ())

According to your logic, you must have also been expecting
#(((two (1 2 (a . b))) (one (a . b))) ())

which is not what you wrote.

> Why is behaviour of print for a hash different from others?
> Am I missing anything?

When I read the documentation, I see:
Return the (key . value) pair for key in the given hash table. If key
is not in table then create an entry for it with init as the value,
and return that pair.

Notice the dot between key and value, which means that
hashq-create-handle! behaves like cons, and not like list;
from your mail, it seems that you were expecting it to
behave like list.

--linas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]