2

私はプログラミング言語に取り組んでいます:アプリケーションと解釈の本の第6章http://cs.brown.edu/courses/cs173/2012/book/From_Substitution_to_Environments.html

本で説明されているように修正を適用しましたが、短所はソースで参照されている空のリストに型を追加していません。パラメータとして渡されていないときに mt-env を設定する方法についての手がかりはありますか?

#lang plai-typed

;; Binding types
(define-type Binding
  [bind (name : symbol) (val : number)])

;; some helper functions:
(define-type-alias Env (listof Binding))
(define mt-env empty)
(define extend-env cons)

;; testing function
(define (addBinding [b : Binding] [env : Env])
  (extend-env b env)
  )

(addBinding (bind 'x 5) mt-env) ;; returns (list (bind x 5))
(display mt-env) ;; returns empty list

以下は、必要に応じてコンテキストの完全なコードへのリンクです。interp 関数の appC ケースは、私の問題領域の特定の場所です。 https://github.com/MickDuprez/plai/blob/master/Chapter%206/chapter-6.rkt

4

1 に答える 1