On 1/2/2018 12:43 PM, Sanjeeb Sinkhada wrote:
hi could anyone help me with this question?
Write a function that will take a list of pairs and return just the
pair comprising the first element of the first pair and the second
element of the last pair.
Eg.
> (reduce-pairs ’())
NIL
> (reduce-pairs ’((1 2) (3 4)))
(1 4)
> (reduce-pairs ’((1 2) (3 4) (5 6)))
(1 6)
I have got this so far
(define reduce-pair(λ(x y)(cond
((pair? x)x)
(cons( car x)
(cons ( list-tail (second y)))))))
but its completely wrong
thanks in advance
Yup, it definitely is wrong. <grin> This smells like homework and the
homework policy in this forum is to help but not answer directly.
First, your examples have a single list argument, but your function is
defined to have 2 arguments. Why?
Second, what should happen if the list contains only 1 pair or contains
elements that are not pairs?
Third, are you supposed to solve the problem by walking the list, or can
you use any pre-defined list functions?
Think about how you would get the first and last elements of the list.
Then think about how you get the first and second values of those
pairs. Then think about how to make a new pair from those values. If
you can use any predefined function, then you're at least half way there
already ... you just need to put it together.
George
--
You received this message because you are subscribed to the Google Groups "Racket
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.