Yes, lambda expression have an implicit begin in the body.
> (begin . (1 2 3))
3
> (begin (1 2 3))
application: not a procedure;
expected a procedure that can be applied to arguments
given: 1
arguments...:
Here (begin . (1 2 3)) is the same as (begin 1 2 3).
The doc
Does that mean that lambda expressions have an implicit (begin …) block in them?
(begin ((displayln 1) (displayln 2) (displayln 3))) leads to an error
(begin . ((displayln 1) (displayln 2) (displayln 3))) displays to 1 2 3
Thank you for the detailed explanation I think I get it now.
> On 13 Mar
>Imagine (_ (foo x y z) (displayln x) (displayln y) (displayln z)) as the
>actual syntax. The .body will be bound to the sequence of three diaplaylns and
>this sequence will become the body of the lambda in the expansion.
So in this case body will be bound to the list ((displayln x) (displayln y
The cons cell constructed by (cons 1 2)
is normally printed as (1 . 2).
The list created by (list 1 2 3) could also be created
as (cons 1 (cons 2 (cons 3 '(. It could be printed as
(1 . (2 . (3 . (.
Normally lists are simply printed as (1 2 3) though.
Notice that (1 . (list 2 3)) is the s
de marzo de 2016 16:05
To: Racket Users
Subject: [racket-users] Pattern Matching in Macros | Meaning of dot
Hello everyone,
Since I've discovered the concept of metaprogramming I've been quite
interested in Racket and its syntax extension capabilities.
While searching for a memoizat
> On Mar 13, 2016, at 11:05 AM, Pedro Caldeira
> wrote:
>
> Hello everyone,
>
> Since I've discovered the concept of metaprogramming I've been quite
> interested in Racket and its syntax extension capabilities.
>
> While searching for a memoization syntax extension I found a macro whose
> p
Hello everyone,
Since I've discovered the concept of metaprogramming I've been quite interested
in Racket and its syntax extension capabilities.
While searching for a memoization syntax extension I found a macro whose
pattern extension remained unclear.
(define-syntax define/memoized
(syntax
7 matches
Mail list logo