unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Praveen D V <for.pdv@gmail.com>
To: linasvepstas@gmail.com
Cc: guile-user@gnu.org
Subject: Re: Display on guile
Date: Thu, 5 Mar 2009 21:41:00 +0530	[thread overview]
Message-ID: <40d5b80e0903050811l2bd2e6a2q99ac16754b6d543e@mail.gmail.com> (raw)
In-Reply-To: <40d5b80e0903050808i2168bf6du423a3df0fc757cec@mail.gmail.com>

On Thu, Mar 5, 2009 at 9:38 PM, Praveen D V <for.pdv@gmail.com> wrote:
> hi,
>
> On Thu, Mar 5, 2009 at 8:17 PM, Linas Vepstas <linasvepstas@gmail.com> wrote:
>> 2009/3/5  <for.pdv@gmail.com>:
>>> 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)) ())
>
> Small correction, just checked on my cygwin(on windows now), it prints as
> #(((two 1 2 (a . b)) ((one a . b)))
> Also, not sure of the last '()'.  Just a did a cut&paste, something went wrong.
>
>>> 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.
>
> No, not at all.  All I was expecting(assumed), cons always
> prints as "( x . y )".  Notice
> 1. In list it is printed as assumed; either first or last element.
> 2. In hash it prints as assumed; if it is not the first element in value.

Please read it as "In hash it prints as assumed; if it is not the ONLY
member in value."

> If ml2 was created as
> guile> (define ml2 (list mc 1 2))
> guile> ml2
> ((a . b) 1 2)
> and if ml2 was used as value in a hash
> guile> (hashq-create-handle! mh 'one ml2)
> guile>mh
> #(((two 1 2 (a . b)) ((one (a . b) 1 2))))
> Question remains same, why is the behavior different if value is 'cons'?
>
>>> 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.
>
> Hope I'm clear this time.
>
> --regards, Paveen
>




  reply	other threads:[~2009-03-05 16:11 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-05  8:05 Display on guile for.pdv
2009-03-05 14:47 ` Linas Vepstas
2009-03-05 16:08   ` Praveen D V
2009-03-05 16:11     ` Praveen D V [this message]
2009-03-05 18:27     ` Linas Vepstas
2009-03-10  3:41       ` for.pdv

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=40d5b80e0903050811l2bd2e6a2q99ac16754b6d543e@mail.gmail.com \
    --to=for.pdv@gmail.com \
    --cc=guile-user@gnu.org \
    --cc=linasvepstas@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).