Re: [racket-users] Destructuring a list in (for ...)

2018-11-23 Thread Alexis King
The trouble, sadly, is that this grammar is ambiguous. In (for ([(x y) s]) ) should (x y) be parsed as a single match pattern or as two binders for a two-valued sequence (such as one produced by in-hash, for example)? You could make it unambiguous in various ways, such as by

[racket-users] Racket application servers

2018-11-23 Thread Brian Adkins
I'm porting a web application from Ruby/Rails to Racket, and I'd like something to manage the Racket server processes. In the Ruby world, I'm currently using Unicorn ( https://en.wikipedia.org/wiki/Unicorn_(web_server) ) prior to that I used Nginx Passenger (

Re: [racket-users] Destructuring a list in (for ...)

2018-11-23 Thread Laurent
Maybe you could have something like (in-match ...) ? On Fri, Nov 23, 2018 at 4:54 PM Alexis King wrote: > The trouble, sadly, is that this grammar is ambiguous. In > > (for ([(x y) s]) > ) > > should (x y) be parsed as a single match pattern or as two binders for a > two-valued

Re: [racket-users] Destructuring a list in (for ...)

2018-11-23 Thread Philip McGrath
I actually have an experimental `in-match` macro, analogous to `in-value`: https://docs.racket-lang.org/adjutor/Experimental.html#(form._((lib._adjutor%2Fmain..rkt)._in-match)) One open question with my version (and one of the reasons I consider this experimental) is what should be done if one of

Re: [racket-users] Racket application servers

2018-11-23 Thread George Neuner
On 11/23/2018 4:38 PM, Philip McGrath wrote: I'm not familiar with Ruby, so this is just some general information. The Racket web server already supports concurrency with its built-in green threads, so handling one request won't block the concurrent handling of another. (Not all languages'

Re: [racket-users] Racket application servers

2018-11-23 Thread Philip McGrath
I'm not familiar with Ruby, so this is just some general information. The Racket web server already supports concurrency with its built-in green threads, so handling one request won't block the concurrent handling of another. (Not all languages' built-in web servers do this; I don't know about

Re: [racket-users] Destructuring a list in (for ...)

2018-11-23 Thread Greg Hendershott
> The trouble, sadly, is that this grammar is ambiguous. In > > (for ([(x y) s]) > ) > > should (x y) be parsed as a single match pattern or as two binders for a > two-valued sequence (such as one produced by in-hash, for example)? Unless I'm being dense, (x y) isn't a valid single

Re: [racket-users] Racket application servers

2018-11-23 Thread Philip McGrath
I'm not sure if this was clear from what I said earlier, but I use the Racket web server without anything in front of it. In fact, Racket does SSL termination and serves as a proxy for non-Racket services. We have been completely satisfied with its performance and reliability. -Philip On Sat,

Re: [racket-users] Destructuring a list in (for ...)

2018-11-23 Thread Philip McGrath
Depends on what `x` is, both symbolically and in terms of binding: (for/first ([(list _) #hash([(a) . 1])]) list) (define-match-expander x (syntax-rules () [(_ pat) (list pat)])) (match '(ok) [(x v) v]) -Philip On Fri, Nov 23, 2018 at 11:41 PM Greg Hendershott wrote: > > The

Re: [racket-users] Racket application servers

2018-11-23 Thread Greg Hendershott
In my experience a Racket web server will just stubbornly continue to work for months at a time, if you let it. (Reminds me of the aviation joke. In the future, cockpits will have just one human pilot and a dog. The dog is there to bite the human if they try to turn off the autopilot.) I have a