( Only now did I realize I wrote pattern patching in the subject instead
of pattern matching.
Pattern patching... I have no idea what that is... )
On 16-11-2011 13:56, José Lopes wrote:
Hello,
Thank you for the quick reply. I am aware of the code replacement you
mentioned.
However, what I really wanted was to preserve the name of the local
variable (e.g., brick) and find some other way to refer to the
structure (e.g., struct:brick).
I prefer this naming convention because I refer to local variables
much more often than I refer to structures. Therefore, I think the
code is more readable if it is possible to preserve the names of local
variables that are instances of structures, and every now and then
refer to the structure with an alternate name to escape name shadowing.
I was playing with omit-define-syntaxes and constructor-name.
However, I didn't find a combination of structure parameters that
would help me do exactly what I have described.
Is there a way to do it?
Regards,
José
On quarta-feira, 16 de Novembro de 2011 13:41:35, Asumu Takikawa wrote:
On 2011-11-16 13:11:33 +0800, José Lopes wrote:
(define-struct brick
(shape cs size))
and the following function
(define (right brick)
(match brick
((struct struct:brick (shape cs size))
(make-brick shape (xy (- (x size) 1) (y size)) size))))
The function argument binding "brick" is capturing the "brick"
identifier in the match pattern. If you rename the argument and use
"brick" instead of "struct:brick" here it should work.
Cheers,
Asumu
_________________________________________________
For list-related administrative tasks:
http://lists.racket-lang.org/listinfo/users
--
José António Branquinho de Oliveira Lopes
58612 - MEIC-A
[email protected]
_________________________________________________
For list-related administrative tasks:
http://lists.racket-lang.org/listinfo/users