Mike Sperber
7fac9193fa
In the DMdA languages, create arbitrary for record signature without fields.
...
This way, you don't have to use define-record-procedures-parametric
for records like this:
(define-record-procedures empty
make-empty empty?
())
2011-12-18 14:18:42 +01:00
Mike Sperber
c080940d02
Fix infinite recursive signatures.
...
Such as this, submitted by Torsten Grust:
(define-record-procedures-parametric stream_ stream-of
make-stream
stream?
(stream-head stream-tail))
(define stream
(lambda (t)
(signature (stream-of t (-> (stream t))))))
(: from (number -> (stream number)))
(define from
(lambda (n)
(make-stream n (lambda () (from (+ n 1))))))
(: foo (stream number))
(define foo (from 1))
The problem was that the arbitaries got evaluated too eagerly.
2011-12-18 14:18:42 +01:00
John Clements
b1d791a02e
renamed stepper-define-struct-hint to stepper-black-box-expr
2011-06-29 10:03:44 -07:00
Mike Sperber
18662741fb
Fix signature-checking bug with DMdA's `define-record-procedures'.
...
Define the predicate before the constructor, as the predicate may be
used in checking the signature of the constructor.
2011-01-22 16:23:23 +01:00
Mike Sperber
eebe5b2e2b
2nd attempt at generators for records/structs.
...
This time, with feeling.
2010-10-11 13:34:16 +02:00
Mike Sperber
f706b0d7a7
Revert "Create arbitraties off parametric struct/record signature constructors."
...
This reverts commit 7df9a22a67
.
It was broken in several ways. New attempt later.
2010-10-09 17:48:58 +02:00
Mike Sperber
7df9a22a67
Create arbitraties off parametric struct/record signature constructors.
...
This enables QuickCheck value generations for structs/records.
2010-10-08 17:21:07 +02:00
Mike Sperber
219c91d8e7
Check parametric struct/record signatures eagerly.
2010-10-08 17:01:47 +02:00
Mike Sperber
29a0511439
Give the type-name signature off `define-record-procedures' a name.
2010-10-08 15:25:44 +02:00
Mike Sperber
593f8588fe
Implement lazy signature checking for ordinary pairs.
2010-09-22 11:03:01 +02:00
Mike Sperber
fcdfefea10
"Vertrag" -> "Signatur" in a few places.
2010-09-17 18:02:34 +02:00
Mike Sperber
5f25c239f2
Merge remote branch 'local-plt/master'
...
Conflicts:
collects/deinprogramm/define-record-procedures.scm
collects/test-engine/scheme-tests.rkt
collects/test-engine/test-display.scm
2010-07-13 17:13:30 +02:00
Mike Sperber
faf8ec358f
Rename DMdA/HtDP "contract" to "signature".
2010-06-28 14:58:16 +02:00
Mike Sperber
2c964b91f0
Provide prop:print-converter propery with `define-record-procedures'.
...
This fixes quasiquote and constructor-style printing to not fall for
the extra lazy-contract-checking field.
2010-06-09 14:37:36 +02:00
Mike Sperber
fc879f1894
Make use of stepper-define-struct-hint' in
define-record-procedures'.
2010-06-09 14:33:21 +02:00
Mike Sperber
93d7ec9446
Don't recheck DMdA lazy contracts we've already checked.
...
We avoided re-applying contracts that haven't been checked, but not
those that have. Do so now.
2010-06-07 17:06:07 +02:00
Mike Sperber
5f8924b1d2
Fix various interaction breakage between the new DMdA records and the stepper.
...
Namely, attach the `stepper-ignore-completely' property to each
individual definition, rather than just to the block of definitions as a whole.
2010-06-01 20:10:11 +02:00
Mike Sperber
b4f010c6d5
Fix breakage due to lazy contracts.
...
- fix check for lazy-wrap property
- supply hash procedures for records defined with `define-record-type'
(needed by the stepper)
2010-05-20 19:55:12 +02:00
Mike Sperber
9d20fd713d
Lazy contract checking for DMdA's `define-record-procedures-parametric'.
...
svn: r18806
2010-04-13 07:57:57 +00:00
Mike Sperber
4c70a14d7e
Unbreak the stepper wrt. the new `define-record-procedures' syntax.
...
svn: r16074
2009-09-19 17:46:19 +00:00
Mike Sperber
698199d68c
Massage syntax of `define-record-procedures-parametric'.
...
Now
(define-record-procedures-parametric pare pare-of
make-pare pare?
(pare-one pare-two))
instead of the old
(define-record-procedures-parametric (pare a b)
make-pare pare?
(pare-one pare-two))
svn: r16035
2009-09-17 12:33:36 +00:00
Mike Sperber
b6ca1e1673
Zap a bunch more `define-contract' forms.
...
svn: r15971
2009-09-11 09:38:59 +00:00
Mike Sperber
018521cbc3
Merge from mike/dmda branch.
...
This adds the language levels, teachpacks, and documentation for the
textbook "Die Macht der Abstraktion".
svn: r14019
2009-03-09 07:51:09 +00:00