unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Chris Vine <vine35792468@gmail.com>
To: guile-user@gnu.org
Subject: Re: "Missing" libraries/concepts found in other languages/ecosystems?
Date: Fri, 10 Jul 2020 11:21:09 +0100	[thread overview]
Message-ID: <20200710112109.b2ffa630699452541835924b@gmail.com> (raw)
In-Reply-To: <CAJ98PDys2vumNVKCpfe-muwfGLxjKkzPLix+j9g+wmLZYweBJQ@mail.gmail.com>

On Fri, 10 Jul 2020 10:49:37 +0200
Catonano <catonano@gmail.com> wrote:
> Il giorno mer 8 lug 2020 alle ore 20:22 Zelphir Kaltstahl <
> zelphirkaltstahl@gmail.com> ha scritto:
> 
> > Hi Simen!
> >
> > On 7/8/20 6:00 PM, guile-user-request@gnu.org wrote:
> > > Hi, I'm new to scheme/lisp, so I'm trying to find out how to do
> > > things the "lisp
> > > way". On the other hand, I like things from other ecosystems too,
> > > and I'm having
> > > problems finding this for Guile. It might be because there's no
> > > need for it/I'm
> > > terrible at searching/nobody had the time yet, or something else.
> > >
> > > I've been trying to find implementations for https://reactivex.io
> > > without any
> > > luck. And I'm unable to find implementation of FP concepts as
> > > found in Haskell
> > > and other languages. Functor, Monad, lenses (and other helpers for
> > > working with
> > > immutable data).
> > >
> > > Does things like this exists, or is it better to use something
> > > else?
> > >
> > > Regards Simen
> >
> > To what others already have written I will add:
> >
> > From time to time one can copy ideas from Racket or look at what exists
> > in Racket for solving a problem or seeing what the approach is.
> >
> > Catonano identified already the lack of examples in the Guile guide. I
> > fight with that myself, so I created a repository with examples. Perhaps
> > I should somehow add them to the guide. I've not looked into how to do
> > that. Probably some commit in a repo somewhere for the guide:
> >
> > https://notabug.org/ZelphirKaltstahl/guile-examples
> >
> > Hope this can help!
> >
> 
> Thank you, yes that helps
> 
> In fact, it's a precious resource !
> 
> I was especially delighted with the examples of using exceptions !
> 
> I had so missed examples of those !
> 
> As for the manual, very recently a mention of Guile Hall ended up being
> included in the manual
> 
> The same could be done with your examples collection
> 
> I also think that your collection could be mentioned by the Guile web site,
> maybe in the "learn" section
> 
> Here's the repo for the web site:
> https://git.savannah.gnu.org/cgit/guile/guile-web.git/
> 
> a regular patch could do
> 
> What do people think of mentioning this resource on the Guile web site ?

Whilst I don't have strong feelings, as a general approach I think it is
better to include additional examples (where needed) in the body of the
manual, which I think is generally well written.

Also, at this level of detail what some find helpful others don't.  You
were delighted above with the exceptions example, whereas (if I read
the right one) I thought that that was one of the weaker ones.  It
concentrates on R6RS/R7RS exceptions and with-exception-handler rather
than with guile's much easier to use catch expression (for guile-2.2)
or (for guile-3.0) its beefed-up with-exception-handler and exception
objects.

with-exception-handler is a tricky beast and the example didn't deal
with the main case: most uses of exceptions involve handling them and
moving on with program execution from the point where the exception is
caught, and to do that using with-exception-handler instead of
guile's 'catch' form you have to have a call/ec helper (or with
guile-3.0 you can just set the #unwind argument to true).  Instead you
are left with the idea that you use continuable exceptions for that
(which while they do stop the program exiting are something different)
or the R6RS/R7RS guard form.

I am not trying to be critical here - I think examples are useful to
convey points and some of them were fine.  My point is more about venue.



  reply	other threads:[~2020-07-10 10:21 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.75.1594224014.21222.guile-user@gnu.org>
2020-07-08 18:22 ` "Missing" libraries/concepts found in other languages/ecosystems? Zelphir Kaltstahl
2020-07-09 18:12   ` Leo Butler
2020-07-09 19:34     ` Zelphir Kaltstahl
2020-07-10  7:39   ` Aleix Conchillo Flaqué
2020-07-10  8:14     ` Alex Sassmannshausen
2020-07-10  8:49   ` Catonano
2020-07-10 10:21     ` Chris Vine [this message]
2020-07-10 11:20       ` Catonano
2020-07-11  0:19         ` Zelphir Kaltstahl
2020-07-11  0:34           ` Zelphir Kaltstahl
2020-07-11 10:14             ` Chris Vine
2020-07-11 13:45               ` Stefan Israelsson Tampe
2020-07-11 14:46             ` Linus Björnstam
2020-07-11 10:13           ` Chris Vine
2020-07-11 18:20             ` John Cowan
2020-07-11 22:39               ` Chris Vine
2020-07-11 22:41                 ` John Cowan
2020-07-11 23:09                   ` Chris Vine
2020-07-12  1:52                     ` John Cowan
2020-07-12 20:26                       ` Chris Vine
2020-07-13 10:10                 ` Chris Vine
2020-07-12 16:08             ` Catonano
2020-07-12 16:10               ` Catonano
2020-07-12 17:46               ` John Cowan
2020-07-12 19:14               ` Chris Vine
2020-07-12 19:32                 ` Chris Vine
2020-07-14 10:32                   ` Catonano
2020-07-14 11:06                     ` Catonano
2020-07-14 16:21                     ` Chris Vine
2020-07-12 20:33               ` Zelphir Kaltstahl
2020-07-08  7:38 Simen Endsjø
2020-07-08  8:15 ` Vladimir Zhbanov
2020-07-08 10:08 ` Catonano
2020-07-08 11:29 ` Chris Vine
2020-07-10 12:15 ` Christopher Lam
2020-07-10 15:52   ` Chris Vine

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=20200710112109.b2ffa630699452541835924b@gmail.com \
    --to=vine35792468@gmail.com \
    --cc=guile-user@gnu.org \
    /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).