[plt-scheme] Combining digits to form numbers

 From: Matthias Felleisen (matthias at ccs.neu.edu) Date: Mon Feb 16 20:55:05 EST 2009 Previous message: [plt-scheme] Combining digits to form numbers Next message: [plt-scheme] Combining digits to form numbers Messages sorted by: [date] [thread] [subject] [author]

```> > (foldl (lambda (x y) ( + x (* y 10) )) 0 '(1 2 3))
> 123

-- Matthias

On Feb 16, 2009, at 8:21 PM, Tim Wawrzynczak wrote:

> I think you're looking for something like this?
>
> (foldr (lambda (x y) ( + x (* y 10) )) 0 (reverse '(1 2 3)))
>  = 123
>
>  - inforichland
>
> On Mon, Feb 16, 2009 at 7:08 PM, Thomas Chust <chust at web.de> wrote:
> 2009-02-16 aditya shukla <adityashukla1983 at gmail.com>:
> > [...]
> > (define guess (lambda(lsb csb msb)
> >         This is the part which i was not able to do , how can i
> combine lsb
> > , csb and msb so the number is of the form (msbcsblsb) .Is there any
> > function in scheme which can do this
> >
> >                          ))
> > [...]
>
> Hello,
>
> there are indeed functions in Scheme that can be used do this -- they
> are called + and * ;-)
>
> All you need to do is multiply each digit of the number with the value
> of its position and add up the results. If you want to create a more
> general solution for an arbitrary number of digits, a function like
> foldr comes in handy, too.
>
> cu,
> Thomas
>
>
> --
> When C++ is your hammer, every problem looks like your thumb.
> _________________________________________________