it any workaround?
It's not a limitation, but a misunderstanding. Define creates a binding
in the _current_ scope, not the top level one.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
ect program will ever be broken by
using it and the efficiency gains if eq? are marginal.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
to be hygienic, that's pretty easy, but I'm not sure
what you can do about this in general. It's not like you can pass in the
gensymed name, because that will break the way people who for some
reason still right defmacros expect them to work.
Dunno, maybe I'm just missing some insight here.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
encoding header, then the server should not expect a body. I will note,
in particular, that not sending a message is a distinct operation from
sending a message of length 0.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
, but there is still one obvious issue with
your macro. "exp ..." means 0 or more expressions. If you had intended
one or more, as is more usual in this type of macro, you'll want to say
so explicitly with something like "exp exps ...".
Cheers
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
13.5.1.
> but on the other it would be nicer if the compiler could trace the
> usages of continuations and figure out whether a given one is
> ever being re-entered, and optimize accordingly.
Well, it can sometimes, but it's a hard analysis in general.
--
Ian Price -- shift-reset.com
uit for new
contributors.
> Anyway can I suggest a Bug report where we
Then add it to the tracker :)
0. syntax-rules is fine, modulo al petrofsky/oleg style craziness
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it
. Currying refers to the process
of turning a function of n arguments into an n-nested set of 1 argument
functions. Partial application is, well, not supplying all the arguments
to a function. You can have partial application without currying, as
your macro shows.
--
Ian Price -- shift-reset.com
"
tting a chain of 2-argument
> functions)
Indeed, I wasn't sure whether or not I should have mentioned it, but I
was told this is the "correct" name for that feature on comp.lang.scheme
a while back. I think it might have been Will Clinger, but I'd need to
double check.
--
I
#x27;t like these sorts of modules. Automatic
checking of an example in a docstring is fine, but putting all the tests
in a docstring makes the docstring too big to be useful, and you lose
any compile warning time warnings guile can give you on the code.
Just my 2¢, but glad it works for yo
it makes a lot of references to Racket, and Racket
specific ways of doing things. Much of it can be fixed for Guile and
other Schemes, but you'd still need to gut around half of it.
There haven't been any patches yet, but that doesn't mean I haven't been
spending time thinkin
i-compound.texi. I split the paragraph to
make it easier.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
>From ddda4d53e588441e15b39c36033ed7f425fa3895 Mon Sep 1
> Patch attached that changes api-compound.texi. I split the paragraph to
> make it easier.
Well, it's been a bit over a week, so I just pushed this.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it ag
You'll need to hit ,bt when you get the prompt. Cheers.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
at gives an error, you
should hopefully get an error here too. Then you can use the command ,bt
to get a backtrace.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
resorting to C hacking?
Without an actual benchmark, no.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
Ian Price writes:
> The problem is one that occurs when hygienic and non-hygienic macros are
> mixed. Here, and-let* is the non-hygienic one. Basically, in a hygienic
> macro, you carry around a bunch of context to allow you to refer to the
> right variable names. Then defmacro
Ian Price writes:
> This version of define-macro still fails on the original macros as
> posted by Panicz Maciej Godek, but gives the "right" result using stis's
> ck macro version.
>
> At 2:30am, I'm not liable to get to the bottom of why till tomorrow, but
less)
Try a few scheme implementations and see how many error on
`#(1 2 3 unquote foo)
because of implementing vector quasiquotation under the hood as list
quasiquotation.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
fine (h) ((lambda x
(cdr x (h)) (g))
$2 = (define (f) (cdr '()))
So, yes.
Though not relevant to this case, there is also another important factor
in your code, which is that all function calls are tail calls. So even
if you turned off optimisation, you would not see a complete backtra
x27;s free for anyone who wants to, to hack on.
See http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11215.
(As for Racket, I suspect you would get better info in the gui than the
console version.)
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
u can get started by reading
https://github.com/ijp/guildhall/wiki/Getting-Started
I have not been the most active maintainer of guildhall/dorodango,
and for that I apologise.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
utput of "guild compile --to=javascript
foo.scm" can be found between the comments.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
Hello Everyone,
This summer I am following up on the work of two years ago to compile
Guile to JS. As some of you may remember from irc back then, I was
making good progress until personal circumstances intervened. This
year I intend to get it into shape where we can consider including it
in Guile
Hello guilers,
I figure it's time for an update on what I've been working on for the
past two weeks.
I have mainly been working on updating the compiler to go from the old
cps representation to the new cps-soup representation.
This had a few false starts, but on the third attempt, I think the
ap
I would like to be able to access Javascript functions from Scheme,
possibly with a (system foreign) type API, but this is not a priority
at the moment. Getting as much of Scheme as possible working is the
main thing. On my list, you could put it as the unspoken 5th stage.
As for residualisation,
Hello Guilers,
I am long overdue an update on the state of affairs of guile-js
(the last was at the end of June).
Last time I spoke, I had completed task 1 (cps old -> cps soup), and
was starting work on task 2 (port boot-9[1]). I made a lot of headway
on this task, and would categorise it as "ne
ll likely be
true till December, but I will make an effort to keep up with
guile-user and be on the IRC Channel to help the daring souls who want
to give this a go. My priorities will be documenting the ILs, filling
in missing builtins, and improving jslink. I especially want to see
basic IO and MiniKanren up and running, and for it to be convenient to
use Guile's builtin libraries.
Happy Hacking, Ian Price
(This is a crosspost to guile-user of my blogpost [Summer of Code
Recap], but please comment on this list, rather than there)
[Summer of Code Recap]
https://shift-reset.com/blog/2017/8/28/Summer%20of%20Code%20Recap/
vailable. Perhaps something like
"Since 'load' happens at run-time, syntax definitions will have no
effect on existing procedures, although they will be available at the
REPL."
--
Ian Price
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
there are 'fluids' or 'parameters' which behave similarly.
(define x (make-fluid))
(define (print)
(write (fluid-ref x)))
(cons (fluid-ref x)
(with-fluids* (list x) '(rebound)
(lambda () (print) (fluid-ref x
;; => (#f . rebound)
;; prints 'rebound
Hope that helps
--
Ian Price
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
pe `,bt' for a backtrace or `,q' to continue.
scheme@(guile−user) [1]> ,q
scheme@(guile−user)> (resume 8)
$7 = 18
--
Ian Price
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
ine called 'assert-lambda' which looks like
(lambda ((a procedure?) (b list?)) ...)
I don't, in general, check return types, but I do try and make sure that
they obey the declaration comment. Having a built-in type/contract
syntax, like Racket has, would be nice as I could move these commen
rompt. Type `,bt' for a backtrace or `,q' to continue.
scheme@(guile−user) [1]> ,q
But further exploration shows that all the symbols are in fact bound,
and this error only seems to occur if there is no line break at some
point after sym8 and before sym85. Presumably, I'm running
l...@gnu.org (Ludovic Courtès) writes:
> Could you see if you can find a way to reproduce the problem?
Actually, this turns out to be an issue with geiser not guile. Sorry
about that.
--
Ian Price
"Programming is like pinball. The reward for doing it well is
the opportunity to do
Ian Price writes:
> l...@gnu.org (Ludovic Courtès) writes:
>
>> Could you see if you can find a way to reproduce the problem?
> Actually, this turns out to be an issue with geiser not guile. Sorry
> about that.
Well, it's not fair to just blame geiser, it's the same
#f path: "/" query: #f fragment: #f>) (cache−control private) (content−type
text/html (charset . "UTF−8")) (set−cookie .
"PREF=ID=3c2c9fc50c288823:FF=0:TM=1320578334:LM=1320578334:S=Gtrhd05V1tRopJyZ;
expires=Tue, 05−Nov−2013 11:18:54 GMT; path=/; domain=.google.com") (date .
#) (server . "gws") (content−length . 221) (x−xss−protection .
"1; mode=block") (x−frame−options . "SAMEORIGIN") (connection close)) port:
#>
$13 = "
302 Moved
302 Moved
The document has moved
http://www.google.co.uk/\";>here.\r
\r
"
scheme@(guile−user)>
>
> Thanks,
> Rick
>
--
Ian Price
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
I did for the etag header. It's a band-aid, but
I'm not really sure why you'd be getting a -1 date.
> Thanks for your help with this.
No problem.
I've also attached a patch for _reading_ chunk-encoded data. It will
also modify http-get to handle that for you.
Other Guilers,
Thien-Thi Nguyen writes:
> SRFI 13 ‘string-index’ takes a character-set object as well as a predicate.
> Going that way could be more efficient (if you pre-construct the charset).
I'll make sure to try it out, but I'm don't think it would make much of
a difference.
--
Ia
rm that with this change it works. Thanks ttn for the
release, and thanks andy for saving me some debugging time :)
--
Ian Price
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
ports)
library.
--
Ian Price
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
useful.
1. The test suite requires the (wak trc-testing) library, see
https://gitorious.org/wak
--
Ian Price
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
e@(guile−user)> k
$5 = #(#f 2 3)
this set! modification only works at the first level of the with-vectors
form, fixing that is left as an exercise :)
0. I'm sure there is another way, but my mind blanks at the moment
--
Ian Price
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
.com/1381107.
It would be if someone(nudge nudge) were to take the effort to make one
of these experiments practical, since a guile web framework seems to be
a common request.
--
Ian Price
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
you
> have 5 application servers (guile (import (web server)) running behind
> reverse proxy. User may never fire needed continuation. Overall scaling
> strategy for web is "avoid per node state" (see read-only filesystems on
> Heroku).
Well, no-one suggested that the current a
Eric Schulte writes:
> The following immediately made me think of guile.
> http://netbsd-soc.sourceforge.net/projects/luakern/
It's long since dead, and Linux rather than Hurd, but
http://abstractnonsense.com/schemix/ is somewhat relevant.
--
Ian Price
"Programming is l
look at existing continuation based
frameworks and see how they handle some of these issues.
1. http://rotty.yi.org/irclogs/freenode/%23guile/2012-01-10/
--
Ian Price
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
if you already installed 2.0.4.
> We apologize for the inconvenience.
Mozilla, eat your heart out.
:)
--
Ian Price
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
As a follow up to this, I'd just like to point out this blog post on
racket-lang.org.
http://blog.racket-lang.org/2012/02/zack-gallers-experience-with-stateful.html
--
Ian Price
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - fr
mple GCC plug-in interface
> for Guile. Let’s see how it goes…
I look forward to that.
Come on guilers, that's two of us stepped up to the plate so far. What
are you, chicken? ;-)
--
Ian Price
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
s, I could use (endianness big) or (endianness
little).
For integers you could use ntohs, ntohl, htons, htonl, but that is
native endianness <-> network order only.
> 4. Is writing an archive manager using Guile for implementing archive
> formats a bad idea to start with?
Writing in Scheme is
wn control structures is
something you will need to, and probably should do, only rarely. You'll
generally know when that is since you will be trying to do something
crazy, or having to write in a convoluted programming style.
https://gist.github.com/1548531 - monadic reflection
https://gist.github.com/1381107 - continuations for web programming
https://gist.github.com/1381091 - simple generators.
--
Ian Price
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
l...@gnu.org (Ludovic Courtès) writes:
> Hi Ian,
>
> Excellent illustration, thank you!
>
> Ian Price skribis:
>
>> https://gist.github.com/1548531 - monadic reflection
>
> Could you expound on this one? I can feel the greatness, but I don’t
> fully grasp it. :
Ian Price writes:
> The trick comes from, I think, Filinski's "Representing Monads",
> although it has been quite a while since I've read it. Instead of monads
> being represented by the usual 'bind' and 'unit' functions, or the
> (categori
#x27;stream-take))
(stream-take2 naturals2 10)
Currently, parameterized modules are functions that return a
module, and functions are retrieved by module-ref. This is fine for a
proof of concept, but hopefully I'll have something better integrated
soon.
Thanks to wingo for suggesting the curr
th "/")))
(call-with-values
(lambda ()
(http-get uri #:keep-alive? #t))
(lambda (request body)
...)))
the request should (I think) always be a request object, so you don't
need to check it with if. Though, the body may be #f, so it's worth
checking that.
--
Ian Price
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
Nala Ginrut writes:
> I'm afraid it's a real bug.
No, it's not. See my response to him. :)
--
Ian Price
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
-response-body. I have now looked at the source for
> the web module and that reveals all.
Well, when in doubt, I test it out at the repl. This would have
clarified things immediately :)
--
Ian Price
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
project, so please adjust expectations accordingly. It's just something
> I found practical and extended it a little so it might be practical for
> others too.
I'm not entirely sure what I'm going to do with this (yet :), but I
think it's awfully nice of you to provide
fer
size, rather than the difference, which leads to negative values on the
recursive call. There was also a mistake in the same case in updating
the buffer-pointer.
Thanks for pointing this out, and if you have other comments on the
implementation (and the close-port issue), I'll be happy to hav
Sunjoong Lee writes:
> Hi, Ian;
>
> 2012/5/7 Ian Price
>
> Thanks for pointing this out, and if you have other comments on the
> implementation (and the close-port issue), I'll be happy to have them.
>
> I don't understand the "close-port issue&q
ay things are until someone who cares writes a
better module for this.
If those `current-X-ports' are not files of some kind, and hence
don't have file descriptors for the child, then `/dev/null' is
used instead.
The easiest solution is probably to use OPEN_BOTH
My thanks to Ludovic, Andy, and all other contributors for their help in
this release.
--
Ian Price
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
have an
implementation of functional sequences based on fingertrees in my pfds
library, on the fingertrees branch. See
https://github.com/ijp/pfds/tree/fingertrees
Cheers,
--
Ian Price
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - fr
lly I also try to write my test suits more portably,
and more thoroughly than I had done for the release. But once you've
written them once, it always feels like a drag to do it a second time :)
--
Ian Price
"Programming is like pinball. The reward for doing it well is
the opportunity
n thread 3...
in thread 2...
in thread 3...
in thread 2...
~ $
I hope that gives you a head start. If I've confused you more, I
can only apologise. If you aren't familiar with continuations at all,
you could try reading http://tmp.barzilay.org/cont.txt
--
Ian Price
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
ontinuation, you actually give it a value,
which is used as the return value for the call. I actually make use of
this in the code above, so that the return value of the threads function
returns 'not-done. In this case, when you want a thread to return a
value you just call that thread variable with
Thien-Thi Nguyen writes:
> () Ian Price
> () Mon, 30 Jul 2012 05:56:43 +0100
>
>(use-modules (ice-9 q)) ;; yech, but it'll do
>
>[...]
>
> See also module (ice-9 runq), documented at:
>
> http://www.gnuvola.org/software/guile/doc/Run-Queues.html
>
objects k1 and k2 such that (= x (/ k1 k2))
and (= (numerator x) k1) and (= (denominator x) k2) are all true. Thus
infinities and NaNs are not rational number objects.
(real? -2.5+0.0i) ⇒ #f
(real? -2.5+0i) ⇒ #t
--
Ian Price
"
There is no interface for user submissions at the moment, but I am
looking into that. Hopefully, there will be soon.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
. https://github.com/ijp/guildhall/
1. Installation instructions -- https://gist.github.com/3327296
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
le yet, though it is a priority concern.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
or expository purposes
1. guildhall seems to make some sort of a distinction between "programs"
and "executables", but I'm not sure what the reasoning is for this.
2. executables would go in ~/.local/share/guildhall/2.0/$name/bin
--
Ian Price -- shift-reset.com
&quo
cong gu writes:
> scheme@(guile-user)> (use-modules (srfi srfi-41))
> While compiling expression:
> ERROR: no code for module (srfi srfi-41)
This was a mistake on my part, and I mentioned it on guile-devel a few
days ago. I will need to upload a new package.
--
Ian Price -- shi
compatability, convenience or something else?
substring is in the standard, has been for ages.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
(guile−user)> (palindrome? '(1 2 1))
$9 = #t
scheme@(guile−user)> (palindrome? '(1 2 3 2 1))
$10 = #t
scheme@(guile−user)>
... Seems to work. I believe ___ also works.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
nce stis has far too many toys to
play with :) It looks like it's all scheme though, so I could create a
guildhall package for others.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
public (exported) ones using the
interfaces, but that is beyond my knowledge at the moment.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
ce to get better documentation in
the manual at some point.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
Kejia柯嘉 writes:
> if i use the default web server of guile, where should i put static
> html documents?
Right now, I'd be tempted to suggest you let a "real" web server handle
these, and reverse proxy to guile for the dynamic stuff only.
--
Ian Price -- shift-reset.com
Bquotator''
\\$(C!-(B it is not representative of any particular escaping mechanism I
know of {ampersand} I certainly hope none similar to it exists"
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
the typed Racket is that firstly
> it posits plurality without necessity, introducing labels like Listof,
> that a programmer needs to memoize or look up in the documentation,
> and secondly, it introduces not-much-telling identifier :, which,
> although looks joyfully when used ("
Mark H Weaver writes:
> As shown in the upcase program above, (read-delimited "" port) will read
> the whole file as a string. You need to (use-modules (ice-9 rdelim)) to
> import this procedure.
A perhaps more lucid way is to use get-string-all from (rnrs io ports)
--
ttps://github.com/ijp/iteratees/blob/master/iteratees.sls
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
added, that
you just want to tell me about, bug reports, feature requests,
examples or benchmarks you'd like me to do better on, do email me.
Cheers,
0. Thank you leppie.
1. If you are not using it already, you can get started by reading
https://github.com/ijp/guildhall/wiki/Getting-St
27;t ran it, but I find it hard to believe that it wouldn't be
severely bitrotten at this point.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
ion) syntax, which is a far superior notation for complex
> or dynamically-constructed regexps.
+1
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
ver, be confusing to some people if you mix-and-match module
forms.
0. I've been away from the mailing list, and so am only catching up today.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
Klaus Schilling writes:
> does irregex support SNOBOL-style patterns?
I have not used SNOBOL, so I can't really say for sure if irregexes
functionality subsumes it. The documentation itself does not refer to
SNOBOL at all.
--
Ian Price -- shift-reset.com
"Programming is like
arguments to −
[0] Well, more correctly, they have right identities, of 1 and 0
respectively, but no left ones
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
structions at
https://github.com/ijp/guildhall/wiki/Getting-Started
I'll try and get a mail out later this week about the current state of
affairs with guildhall.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
s part of justifying my Iteratees library, but that has taken a
sideline to newer and shinier projects.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
s the
time to be getting started.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
this change allows this.
> Ian, can you please update your Guildhall "Getting-Started" document
> appropriately? <https://github.com/ijp/guildhall/wiki/Getting-Started>
I have updated the page accordingly.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The
[same
procedure different name] you get
(every (compose string? syntax->datum) #'(k ...))
As an aside, this won't work in Racket, since they also make lists into
syntax objects, unlike psyntax or the r6rs.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward f
ith guildhall, along
with some known interface bugs, the srfi package issues, and support for
C etc. A full post will be made later in the week.(promise :)
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from
, but instead you might consider
(define foo
(match-lambda* ))
rather than
(define (foo . args)
(match args
))
the nearest analogue to read is object->string, but it is not a generic.
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it
> the nearest analogue to read is object->string, but it is not a generic.
That should be string->object. It's funny how often I mix up a->b and b->a
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to
in the tracker.
I'll have a separate post this evening detailing what the new packages
are since last time.
[This was originally a blog post, but I've posted this to the mailing
list since no-one reads my blog :)]
--
Ian Price -- shift-reset.com
"Programming is like pinball. The r
Akop Pogosian writes:
> (define-macro when
> (lambda (test . branch)
> `(if ,test
> (begin ,@branch
FWIW, `when' is already available in Guile 2, and define-macro is
generally frowned upon. For these ultra-simple cases, prefer
define-syntax-rule.
--
I
or so
with such awe-inspiring features as Documentation and a proper Test
Suite. :)
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
1 - 100 of 109 matches
Mail list logo