From 0f78892a0be666c709108ad511de23c761b17365 Mon Sep 17 00:00:00 2001 From: Matthias Felleisen Date: Sun, 21 Sep 2014 12:26:47 -0500 Subject: [PATCH] closes PR 14744 , Rackety --- pkgs/htdp-pkgs/htdp-lib/lang/prim.rkt | 16 +++++++--------- .../htdp-lib/lang/private/beginner-funs.rkt | 18 +++++++++++++++--- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/pkgs/htdp-pkgs/htdp-lib/lang/prim.rkt b/pkgs/htdp-pkgs/htdp-lib/lang/prim.rkt index 977300369d..2058902cf0 100644 --- a/pkgs/htdp-pkgs/htdp-lib/lang/prim.rkt +++ b/pkgs/htdp-pkgs/htdp-lib/lang/prim.rkt @@ -3,15 +3,15 @@ ;; define a primitive operator that consumes a procedure. ;; See manual for more information. -(module prim mzscheme - (require lang/error - (rename lang/htdp-beginner beginner-app #%app)) +#lang mzscheme +(require lang/error + (rename lang/htdp-beginner beginner-app #%app)) - (require-for-syntax (prefix fo: "private/firstorder.rkt") +(require-for-syntax (prefix fo: "private/firstorder.rkt") stepper/private/syntax-property) - (provide define-primitive - define-higher-order-primitive +(provide define-primitive + define-higher-order-primitive provide-primitive provide-higher-order-primitive provide-primitives @@ -167,6 +167,4 @@ (with-syntax ([ex-name ((make-syntax-introducer) #'name)]) #'(begin (define-higher-order-primitive ex-name name (arg ...)) - (provide ex-name)))]))) - - + (provide ex-name)))])) diff --git a/pkgs/htdp-pkgs/htdp-lib/lang/private/beginner-funs.rkt b/pkgs/htdp-pkgs/htdp-lib/lang/private/beginner-funs.rkt index e1135249ae..c45058966f 100644 --- a/pkgs/htdp-pkgs/htdp-lib/lang/private/beginner-funs.rkt +++ b/pkgs/htdp-pkgs/htdp-lib/lang/private/beginner-funs.rkt @@ -276,9 +276,21 @@ @interaction[#:eval (bsl) (even? 2)] } @defproc[(rational? [x any/c]) boolean?]{ - Determines whether some value is a rational number. - @interaction[#:eval (bsl) (rational? 1-2i)] - } + Determines whether some value is a rational number. + @interaction[#:eval (bsl) + (rational? 1) + (rational? -2.349) + (rational? #i1.23456789) + (rational? (sqrt -1)) + (rational? pi) + (rational? e) + (rational? 1-2i)] + As the interactions show, the teaching languages considers many more + numbers as rationals than expected. In particular, @racket[pi] is a + rational number because it is only a finite approximation to the + mathematical π. Think of @racket[rational?] as a suggestion to think of + these numbers as fractions. + } @defproc[(inexact? [x number]) boolean?]{ Determines whether some number is inexact. @interaction[#:eval (bsl) (inexact? 1-2i)]