> On Aug 13, 2020, at 1:05 PM, Jens Axel Søgaard <jensa...@soegaard.net> wrote:
> 
> Den tor. 13. aug. 2020 kl. 21.55 skrev Kevin Forchione <lyss...@gmail.com 
> <mailto:lyss...@gmail.com>>:
> Hi guys,
> 
> In Bracket [1] used your idea to produce s-expression, if the first argument
> of #%app isn't a function:
> 
> ; In the BRACKET language an application of
>   ; a non-function evaluates to an expression.
>   (define-syntax (sym-app stx)
>     (syntax-case stx ()
>       [(_ op arg ...)
>        (quasisyntax/loc stx
>          (let ([o op])
>            (if (procedure? o)
>                #,(syntax/loc stx (#%app o arg ...))
>                (if (holdable? o)
>                    (cons o '(arg ...))
>                    (cons o (list arg ...))))))]))
> 
> There is an additional wrinkle - if a function is "holdable" it "holds" 
> (postpones) the 
> evaluation of its arguments. This can simply we be removed, if you don't need 
> it.
> 
> More details here:
> 
> https://github.com/soegaard/bracket/blob/master/bracket/bracket.rkt#L80 
> <https://github.com/soegaard/bracket/blob/master/bracket/bracket.rkt#L80>
Thanks! With a little modification that does the trick! 

Kevin

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/1358F277-7B1F-4C25-B791-96F70807F641%40gmail.com.

Reply via email to