One question left : Did I do this exercise the right way ?

Roelof


Op 25-6-2012 16:21, Roelof Wobben schreef:
Nope, I think I have to read the whole book to get this kind of problems.
First a lot of things to learn as lists, quote/unquote, lamba.

Roelof



Op 25-6-2012 16:14, Matthias Felleisen schreef:
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



____________________
 Racket Users list:
 http://lists.racket-lang.org/users



____________________
 Racket Users list:
 http://lists.racket-lang.org/users

Reply via email to