[英]scheme/racket super-type and accessing struct properties
我如何访问r的layer属性,以及1的去向? 而且我只能使用point-x和point-y访问2和3,即使它是一个公共值结构。
#lang racket
(define (object-constructor super-type layer)
(struct commmon-value(layer)
#:super super-type
#:transparent
#:property prop:procedure (lambda (self)
layer))
comm)
(struct point (x y)
#:transparent
#:property prop:procedure (lambda (self)
x y)))
(define r ((object-constructor struct:point 1) 2 3 4))
(point-x r)
(point-y r)
r
> (comm 2 3 4)
#lang racket
(struct layer (common)
#:transparent
#:property prop:procedure (lambda (self) (layer-common self)))
(struct point layer (x y)
#:transparent
#:property prop:procedure (lambda (self) (layer-common self)))
(define r (point 1 2 3))
(match-define (point c x y) r)
(r)
c
x
y
输出是:
1
1
2
3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.