Question: Language: R5RS Racket Create a procedure (list->stream lis) that makes a stream from a given list. Create a procedure (stream->list strm n) that makes a

Language: R5RS Racket

  1. Create a procedure (list->stream lis) that makes a stream from a given list.
  2. Create a procedure (stream->list strm n) that makes a list from the first n items of the given stream.
  3. Create a stream called factorials that refers to the infinite stream of consecutive factorial values starting from 0! E.g. (stream-> list factorials 10) (1 1 2 6 24 120 720 5040 40320 362880)
  4. A pseudo-random number generator (prng) can be defined using the following equation:
    1. Xn+1 = (a*Xn + c) mod m

where m is the "modulus" (00 is the "seed" (0 X0 < m) Using this formula, create a procedure called (prng seed) that takes a seed value as argument and produces an infinite stream of random numbers in the range [0,1). E.g.:

(stream->list (prng 3) 5) (0.01585 0.4954 0.9988 0.7253 0.0307)

Use the following values for the prng constants: m = 232 a = 22695477 c = 1.0 Note: the equation above returns numbers in the range [0,m-1], you should ensure that your stream emits only numbers in the range [0,1)

  1. Create a procedure (random-int r min max) that takes a stream of random numbers r in the range [0,1) and returns a stream of random integers in the range [min,max).

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!