Johnny_Brahms

Joined 12 years ago

Karma
1,077
Submissions
383
Member since
Nov 11
View on Hacker News

Recent submissions

Comment · 9 years ago
Transmission comes to mind. It as a gtk, osx and Qt GUI
Comment · 9 years ago
I don't happen to agree with you on eliminating NIL. I don't understand what the royal pain is.

And dynamic-wind is the price you have to pay for call/cc. UNWIND-PROTECT is not the same thing. Multi-shot continuations is he reason. One way would be having explicit one-shot continuations and escape continuations. Those are faster and will make UNWIND-PROTECT work.

I am more in favour of delimited continuations though.

Delimited continuations makes that a bit simpler (since you can easily implement something like dynamic wind using them).

Comment · 9 years ago
I am still waiting for all my favourite applications to be extendable in GNU Guile.

On a more general note, I am still waiting for the world to fall for lisp in general.

Comment · 9 years ago
This was in a small valley near insbruck, Austria in the early nineties. It got some media attention due to some controversy regarding irresponsible tourists. I had however done my research and picked a slope that was regarded as low risk, which was unsurprisingly not reported b the local media :)
Comment · 9 years ago
This depends on the type of avalanche. I know,because I was caught in one. The one I was in was relatively minor and made up of a large part newly fallen snow. I had stopped for a break and managed to get my skis back on, but the thing overtook me hundred meters later. I had managed to get to higher ground relative to the rest of the slope, which is probably what saved me. I broke one leg and both my arms and got a pretty bad concussion.

I managed to walk/ski (one ski was still on me, but badly broken ) to a nearby village and driven on a stretcher to the hospital.

I am lucky to be alive. It is amazing though how clear you can think in life threatening situations. the moment I noticed the avalanche I knew exactly what to do and where to go. When I was buried I remember rocking back and forth to get some wiggle/breathing room and when it stopped I waited until my mind cleared up, struggling hard to defeat the panic and pain, until assessing g the situation.

Comment · 9 years ago
To anyone who was as confused as I, it is not the linked comment that is what OP is referencing, but a reply.
Comment · 9 years ago
I think that the best way to go about it (at least if you want to be successful) would be to write a SRFI that could easily be impkemented using the FFIs that are already out there.

Managing that, but still being flexible enough to be useful, is a huge amount of work, at least if you want to do more than just "call this c function".

Comment · 9 years ago
I have found that you fairly easily can write portable r6rs code, but whenever you step outside r6rs (for stuff that isn't standard, like networking) it becomes an exhibition of cond-expand abuse.
Comment · 9 years ago
Because r7rs large is an effort that probably is bigger than common lisp. It is very much not a toy language.
Comment · 9 years ago
I feel that not standardising a low level FFI for r7rs large is a mistake. They should at least recommend some reasonably low level stuff that can be used to build abstractions.
Comment · 9 years ago
The simplest way would probably be to implement explicit and implicit renaming macro transformers. They are found in many schemes and are quite a bit simpler than the syntax case you linked to. Then you can just glue parts of ashinn's match.scm on top of it for the pattern matching.

There is also a srfi for an improved hygiene low level macro facility that is rather elegant. Can't remember the number though. 70-something.

Comment · 9 years ago
I think immer is brilliant. I just saw that you have guile bindings, which makes it even more exciting!

I like that they are lgpl as well. I am a believer in that kind of freedom definition, and I hope you can dual-license it successfully.

Comment · 9 years ago

    (define-syntax nest
      (syntax-rules ()
        ((nest x) x)
        ((nest x ... (y ...) z) (nest x ... (y ... z)))))
That one is quadratic according to the author, but for 1050 expands of a nest with 6 levels it is less than 10% slower. Whereas in chez scheme, the difference is even less (for more than 2000 expansions)

Edit: Decided to stress test the chez scheme macro expader. for 30000 expansions, it was under 1s using the syntax-case version. I'd say that is very much good enough.

Comment · 9 years ago

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton