Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. We need some data to use for our timing experiments. Write a function up: nat -> (list-of nat) which constructs a list of naturals starting with 0 in ascending order or retrieve it from a previous lab. For example, (up 7) returns (list 0 1 2 3 4 5 6). You can probably write it faster using build-list that you can retrieve it. Similarly, write a function down: nat -> (list-of nat) that constructs a list of naturals ending in 0 in descending order. For example, (nums-down 7) returns (list 6 5 4 3 2 1 0).

    Now write a function
    Code Block
    rands
    Wiki Markup
     that constructs a list of random numbers in the range from {{0}} to {{32767}}.
     To create a single random number in the range from {{0}} to {{_n_}}, compute {{(random _n+1_)}}.
      For larger numbers in the range {{\[0, 32768)}}, try:
    Code Block
    (define max-rand 32768)
    (random max-rand)         ; random is built-in
    
    Note:
    Code Block
    random
    is a function in the Scheme library, but it is not a mathematical function, since the output is not determined by the input.
    HTML
    </li>
    HTML
    </ol>

...