Software Design for Flexibility by Chris Hanson & Gerald Sussman

Software Design for Flexibility by Chris Hanson & Gerald Sussman

Author:Chris Hanson & Gerald Sussman [Hanson, Chris & Sussman, Gerald]
Language: eng
Format: epub, pdf
Tags: Computer Program Design; Symbolic Programming; Flexible Design; Domain-Specific Languages; Constraints; Additive Programming; Evolvable Design; Generic Procedures; Combinators; Evaluators; Provenance; Dependencies; Pattern Matching; Unification; Rule Systems; Backtracking; Propagation; Lisp; Scheme
Publisher: MIT Press
Published: 2021-02-17T00:00:00+00:00


;;; A missing match!

(unify:internal ’(((?? x) 3) ((?? x)))

’((4 (?? y)) (4 5))

(match:new-dict)

(lambda (dict)

(pp (match:bindings dict))

#f))

#f

But these expressions do match, with the following bindings:

((x (4 5) ??) (y (5 3) ??))

How sad! But there is a moral to this story. Using generic procedures, we can make possibly problematic extensions to a correct algorithm without undermining its correctness for uses of the unextended algorithm. The extensions may be useful for some purposes, even without satisfying the correctness requirements of the unextended algorithm.



Download



Copyright Disclaimer:
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.