A student today pointed out the standard reduction definition for ISWIM on pg 
225 in SEwPR is broken:

#lang racket
(require redex)

;; iswim
;; definition from pg 217
(define-language iswim
  ((M N L K) X (λ X M) (M M) b (o2 M M) (o1 M))
  (o o1 o2)
  (o1 add1 sub1 iszero)
  (o2 + - *)
  (b number)
  ((V U W) b X (λ X M))
  (E hole (V E) (E M) (o V ... E M ...))
  (X Y Z variable-not-otherwise-mentioned))

(define-metafunction iswim
  subst : any ... -> any)

;; iswim-standard
;; definition from pg 225
(define iswim-standard
  (reduction-relation
   iswim
   (v ((λ X M) V) (subst M X V) vω)
   (v (o b ...) (δ (o b ...)) δ)
   with
   [(--> (in-hole E M) (in-hole E N)) (v M N)]))


Error message: "reduction-relation: shortcut name may not be a non-terminal in: 
M"

Only posting this here since I couldn't find anything about it on the errata.

Have a good day!

Best,
Andrew

-- 
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to