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.
Op 23-6-2012 23:17, Matthias Felleisen schreef:
Assuming you don't literally mean 'print', here is a function that
does what you want:
;; Sentence is one of:
;; -- empty
;; -- (cons String Sentence)
(define s1 '("This" "is" "a" "sentence."))
(define s2 '("And" "this" "is" "one," "too."))
;; Sentence N -> Sentence
;; add 's' to the 2nd word in s if it is longer than i letters
(check-expect (change s1 2) s1)
(check-expect (change s2 3) (cons "And" (cons "thiss" (rest (rest s2)))))
(define (change s i)
(if (> (string-length (second s)) i)
(cons (first s) (cons (string-append (second s) "s") (rest (rest
s))))
s))
If it doesn't what you want, follow the design recipe and let us know
at which step you're stuck.
On Jun 23, 2012, at 2:45 PM, Roelof Wobben wrote:
I have another "problem" I try to solve in my head.
Suppose I want to change one word in a sentence depening if a
comparision is true or false.
I could do this in pseudo code.
if comparision is true then print "it's true" else print "it's not true"
It works but I type two time's "it's true".
Can this be done so I have to type only one time the sentence and
depeding on true or false the word not is used.
Roelof
Op 23-6-2012 16:18, Matthias Felleisen schreef:
Origin means (0,0) or plain 0 in English.
On Jun 22, 2012, at 2:42 PM, Roelof Wobben wrote:
Hello,
I try to make this exercise :
Exercise 76: A programmer has chosen to represent locations as
Cartesian points or just points:
;Location is one of:
;–Posn
;–Number
;interp. Posn are positions on the Cartesian grid,
;Numbers are positions on the number line
Design the function in-reach, which determines whether or not a
given location’s distance to the origin is strictly less than some
constantR.
So I must design a function called in-reach.
Am I right I need to use two structs (Posn) . One for the given
location and one for the origon ?
Regards,
Roelof
____________________
Racket Users list:
http://lists.racket-lang.org/users
____________________
Racket Users list:
http://lists.racket-lang.org/users