CIS 554 -- Clojure Quiz Name __________________________________
1. Write an anonymous function (a "function literal") to return the third value in a list. You may assume that the list has at least three elements.

2. Write a function named `neg` to return the first negative number in a list of numbers. You may assume that the list contains some negative numbers.

3. Write an anonymous function that, given a positive integer `N`, will return a list or sequence (either one) of the integers `1` through `N`, inclusive.

4. Give the function defined in the previous question the name `count-to`. Then use `count-to` to write an expression whose value is a list of squares of the numbers `1` through `100`. That is, it returns `[1 4 9 16 ... 10000]`.

5. Define a function `non-mult-3` with argument `N` which returns true if `N` is not a multiple of `3`. Reminder: Clojure has `mod` and `not` functions that you can use.

6. Use the previously defined functions to compute the product of the numbers `1` through `25` that are not multiples of `3`.

7. Briefly, what does it mean to say that "a transaction is atomic"?

8. Briefly, what is a reference varable (`ref`)?

9. The real problem with the Java approach to concurrency is that

___________________________ + ___________________________ = ___________________________.
(fill in the blanks).

10. Write a tail-recursive function named `sum` to add up all the numbers in a list of numbers. Hint: Define `sum` to have two parameters, and use one of them as an "accumulator."