unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Damien Mattei <damien.mattei@gmail.com>
To: guile-user <guile-user@gnu.org>
Subject: Scheme+ version 7.3 release
Date: Mon, 8 Jan 2024 15:43:17 +0100	[thread overview]
Message-ID: <CADEOaddHtoZ92T_nFD-NjpS+Rf=GB5-Aer+Wv7eo2yP8ch2=RA@mail.gmail.com> (raw)

Hello,

i present the release version 7.3 of Scheme+ for Guile,
Scheme+ is an extension of the syntax of the Scheme language.
Scheme+ is 100% compatible with Scheme.

Scheme+ is available here:

https://damien-mattei.github.io/Scheme-PLUS-for-Guile/Scheme+io.html

Here is a little example from the Scheme+ for Guile source code itself.

;; split the expression using slice as separator(def
(parse-square-brackets-arguments args-brackets)

  (when (null? args-brackets)
	(return args-brackets))

  (declare result partial-result)

  (def (psba args) ;; parse square brackets arguments


       ;;(display partial-result) (newline)
       (when (null? args)
	     ;;(display "before !*prec") (newline)
	     {result <- (append result (!*prec partial-result))} ;; !*prec is
defined in scheme-infix.scm
	
	     ;;(display "after !*prec") (newline)
	     ;;(display result) (newline)
	     (return-rec result)) ;; return from all recursive calls

       {fst <+ (car args)}

       (if (equal? slice fst)
	
	   ($>
	    (when (not (null? partial-result))
		  {result <- (append result (!*prec partial-result))} ;; evaluate
and store the expression
		  {partial-result <- '()}) ;; empty for the next possible portion
between slice operator
	    {result <- (append result (list fst))}) ;; append the slice operator
	
	   {partial-result <- (append partial-result (list fst))}) ;; not a
slice operator but append it

       (psba (cdr args))) ;; end def, recurse

  (psba args-brackets)) ;; initial call


A full example is available here:

https://github.com/damien-mattei/AI_Deep_Learning/blob/9deadf6370558a5ba43cd9743e89630e19b5bb5a/exo_retropropagationNhidden_layers_matrix_v2_by_vectors4guile%2B.scm#L71

for now Scheme+ is also available for:

Racket :
https://damien-mattei.github.io/Scheme-PLUS-for-Racket/Scheme+io.html

Kawa: https://github.com/damien-mattei/Scheme-PLUS-for-Kawa

Damien


                 reply	other threads:[~2024-01-08 14:43 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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='CADEOaddHtoZ92T_nFD-NjpS+Rf=GB5-Aer+Wv7eo2yP8ch2=RA@mail.gmail.com' \
    --to=damien.mattei@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).