Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
10
Task/Constrained-genericity/TXR/constrained-genericity-1.txr
Normal file
10
Task/Constrained-genericity/TXR/constrained-genericity-1.txr
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
(defmacro define-food-box (name food-type : supers . clauses)
|
||||
(unless (subtypep food-type 'edible)
|
||||
(error "~s requires edible type, not ~s" %fun% food-type))
|
||||
^(defstruct ,name ,supers
|
||||
food
|
||||
(:method set-food (me food)
|
||||
(unless (typep food ',food-type)
|
||||
(error "~s: requires ~s object, not ~s" %fun% ',food-type food))
|
||||
(set me.food food))
|
||||
,*clauses))
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
(define-struct-clause :food-box (food-type :form form)
|
||||
(unless (subtypep food-type 'edible)
|
||||
(compile-error form "~s requires edible type, not ~s" :food-box food-type))
|
||||
^(food
|
||||
(:method set-food (me food)
|
||||
(unless (typep food ',food-type)
|
||||
(error "~s: requires ~s object, not ~s" %fun% ',food-type food))
|
||||
(set me.food food))))
|
||||
Loading…
Add table
Add a link
Reference in a new issue