[racket] how must I interpreted this exercise

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Mon Jun 25 10:14:13 EDT 2012

This is not this kind of problem. 


On Jun 25, 2012, at 10:06 AM, Richard Cleis wrote:

> 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



Posted on the users mailing list.