unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Zelphir Kaltstahl <zelphirkaltstahl@posteo.de>
To: tomas@tuxteam.de
Cc: guile-user@gnu.org
Subject: Re: Writing a procedure in different style
Date: Mon, 21 Dec 2020 22:29:38 +0100	[thread overview]
Message-ID: <0a0d54d1-7e89-e4ef-3ccb-af71714067f4@posteo.de> (raw)
In-Reply-To: <20201221123147.GC3816@tuxteam.de>

Hey Tomas,

On 12/21/20 1:31 PM, tomas@tuxteam.de wrote:
> On Sun, Dec 20, 2020 at 06:57:34PM +0100, Zelphir Kaltstahl wrote:
>> Hello Tomas!
>>
>> I think you are right about it only being down one stack frame down. The
>> checks are performed on what contains the next thing which is recurred on.
> Nice explanation :)
>
>> For a moment I thought "But isn't the null? check done twice in the
>> first cond part?" [...]
> This is one of the fantastic (and scary) things I often experience
> in this (scheme-y) context (take SICP, or the Little Schemer).
>
> Everything looks so easy, but whenever I try myself, I realise that
> I've been taken along a path along high mountains, with breathtaking
> views, and down there it gets messy and there are crocodiles.
>
> It takes a long time to massage one's messy, lowly programs into a
> form which approaches that deep beauty.

I definitely agree!

When I went through the book and also through some SICP exercises, I was
amazed by how much is contained in just a short snippet of code and how
nuanced it can be.

I wonder how much crap code I write on the job, when I am not given as
much time, as I take in my free time, and even in my free time, I often
notice, that I could have written things more succinctly or in a more
idiomatic way or that some special case was not covered. If I look at my
time spent on writing code in a functional style, while trying to not
unnecessarily increase runtime complexity, compared with time spent on
code, that makes use of mutation or even global state, simply hoping
that things will work out later, I also get an idea of how much more one
can think about a short program and how much more there is to think about.

Writing code, a simple thing to learn, a very long (never ending)
journey to master.

I hope that the whole virus stuff will be over soon and I manage at some
point to join an event in the e-lok (it was e-lok something, wasn't it?) ; )

Best regards,
Zelphir

-- 
repositories: https://notabug.org/ZelphirKaltstahl




      reply	other threads:[~2020-12-21 21:29 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-12 12:22 Writing a procedure in different style Zelphir Kaltstahl
2020-12-13  7:06 ` Taylan Kammer
2020-12-13 11:51   ` Taylan Kammer
2020-12-13 12:29     ` Zelphir Kaltstahl
2020-12-13 14:24       ` tomas
2020-12-13 15:01         ` Zelphir Kaltstahl
2020-12-13 15:43           ` tomas
2020-12-20 17:57             ` Zelphir Kaltstahl
2020-12-21 12:31               ` tomas
2020-12-21 21:29                 ` Zelphir Kaltstahl [this message]

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=0a0d54d1-7e89-e4ef-3ccb-af71714067f4@posteo.de \
    --to=zelphirkaltstahl@posteo.de \
    --cc=guile-user@gnu.org \
    --cc=tomas@tuxteam.de \
    /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).