That is-near a better solution ;o) I think HtDP has problems that require assembling sentences from different parts of speech. That is a very challenging software field.
rac On Jun 25, 2012, at 12:41 AM, Roelof Wobben wrote: > You mean something like this : > > (check-expect (calculate 0 3) 3) > (define (calculate getal1 getal2) > (cond > [ (equal? getal1 0) getal2] > [ (equal? getal2 0) getal1] > [else (sqrt (+ (* getal1 getal1) (* getal2 getal2)))] > )) > > ; String -> String > ; This function produces a string depending on the input "niet " or "" > (check-expect (afdrukken "") "Het ingegeven punt is dichtbij het 0 punt") > (check-expect (afdrukken "niet ") "Het ingegeven punt is niet dichtbij het 0 > punt") > (define (afdrukken s) > (string-append first_tekst s middle_tekst) > ) > > > ; Struct -> String > ; Function who outputs "niet" or a empty string depending on the calculated > distance compared with R. > (check-expect (is-near (make-posn 1 0) 5) "Het ingegeven punt is dichtbij het > 0 punt") > (check-expect (is-near (make-posn 3 4) 5) "Het ingegeven punt is niet > dichtbij het 0 punt") > (define (is-near s r) > ( if (< (calculate (posn-x s) (posn-y s)) r) (afdrukken "") (afdrukken "niet > ") > )) > > > Roelof > > > > Op 25-6-2012 6:18, Richard Cleis schreef: >> Check-expect is used to test your function. >> Make that work first. >> >> Then you can use the design recipe to make a new function. >> >> The new function will accept the output of your first function and return >> the message that you want… without any repeated words in the function. >> >> rac >> >> On Jun 24, 2012, at 1:43 PM, Roelof Wobben wrote: >> >>> Hello, >>> >>> This soluation is not what I was looking for. >>> And it uses list which I don't have learned so far. >>> >>> So far I have this : >>> >>> ; constanten >>> >>> (define R 5) >>> (define first_tekst "Het ingegeven punt") >>> (define is_tekst "is") >>> (define middle_tekst "dichtbij het 0 nulpunt") >>> (define niet "niet") >>> >>> >>> ;Number Number -> Number >>> ;This function calculates the distance of a given point compared to the >>> origin >>> (check-expect (calculate 1 0) 1) >>> (check-expect (calculate 3 4) 5) >>> (check-expect (calculate 0 3) 3) >>> (define (calculate getal1 getal2) >>> (cond >>> [ (equal? getal1 0) getal2] >>> [ (equal? getal2 0) getal1] >>> [else (sqrt (+ (* getal1 getal1) (* getal2 getal2)))] >>> )) >>> >>> ; Struct -> String >>> ; Function who outputs a string dependinh on the outcome of the calculation >>> of the distance to the origin >>> (check-expect (is-near (make-s 1 0) "Het ingegeven punt is dichtbij het >>> nulpunt")) >>> (check-expect (is-near (make-s 3 4) "Het ingeven punt is niet dichtbij het >>> nulpunt")) >>> (define (is-near s r) >>> ( if (< (calculate (posn-x s) (posn-y s)) r) >>> >>> Now I can do (string append first_tekst is middle-tekst) and >>> (string-append first-tekst is niet middle-tekst) but then I do almost two >>> times the same with one difference the niet part. >>> And Im looking for a better solution. >>> > > ____________________ Racket Users list: http://lists.racket-lang.org/users

