1. For the following code to evaluate without error, what needs to be added? (def regex "<a>(.*)</a>") (re-seq regex "<a>Ryan Kelker</a>")
2. Which statement regarding Clojure "forms" is true?
3. True or False? (reset!) is used to set the value of an atom.
4. Vars _____
5. Locks _____
6. To represent a boxed decimal in Clojure, you would use ____________.
7. In Clojure, tail-call optimization is _____
8. What's a difference between quote (') and syntax-quote (`) macro characters?
9. Which statement about -> and comp is true?
10. True or False? Function definitions must appear before they're first used.
11. (= (map + '(1 2 3)) 3)
12. You can use ___________ whenever you like if you need a unique symbol, but its primary role is in helping us write hygienic macros.
13. ________ is a very low-level looping and recursion operation that is usually not necessary.
14. What is the conventional first and last character used to name vars intended to be bound to new, thread-local values?
15. In many object-oriented languages, ________________ is a way to decouple a class from other objects upon which that class depends.
16. What is the literal syntax for maps?
17. True or False? Clojure is NOT an imperative language.
18. A multimethod is created using a ________form, and implementations of a multimethod are provided by ___________ form.
19. A(n) ________ is a named Emacs object that represents something editable, usually a file in your filesystem, but also the Clojure REPL or debugger, for example.
20. ________ evaluates all of the expressions provided to it in order and yields the last expression's value as its value.
21. What is generally the first step in deploying your Clojure web application?
22. Clojure is primarily an imperative language.
23. How would you want to create a new Atom with an initial value <value>?
24. The following code will evaluate to true? (defn +++ [n] (+ (inc n) 1)) (= (+++ 1) 3)
25. Clojure provides several "persistent" data structures. Objects of these classes are _____
26. True or False? Metadata is data about data, and has no effect on the 'host' data.
27. True or False? A lazy-sequence can hold all the possible calculations of the Fibonacci sequence.
28. STM stands for _____
29. The reduce function is used to _____
30. What are the 3 phases Clojure code is processed in?
31. What type does the following code result in? [1 2 3 4]
32. If you are already using Java or another JVM language for RDBMS work, it’s likely that you’re using ______________, easily the most popular Java object/ relational mapping library.
33. REPL stands for _____
34. :foo is an example of a(n) _____
35. A built-in Clojure "operation" may be implemented as a...
36. Stack abstraction is supported in Clojure via what three operations?
37. Which statement about Clojure macros is true?
38. The map function is used to _____
39. What are sequences?
40. To calculate the average of some numbers in Clojure, your code would look like this:
41. lib-noir, Ring, and Compojure are all examples of Clojure:
42. What do keywords begin with?
43. How do you add metadata to a symbol or collection?
44. The two comment types that are defined by the reader are:
45. What is significant about function names that end with a "!"?
46. True or False? Clojure programs only support some Java classes and interfaces.
47. Collections that classically support last-in, first-out (LIFO) semantics are called ____________.
48. How do you create an anonymous function?
49. What type does the following code result in? {:a 1 "b" 2}
50. Which is an example of a Clojure function call?
51. What is the function that evaluates a single argument form?
52. Leiningen uses _____ to locate and manage project dependencies
53. Does Clojure have a metadata system that allows for annotation of symbols and collections?
54. True or False? The Clojure language is homoiconic.
55. True or False? Clojure a functional language.
56. True or False? In Clojure a symbol can contain characters that most imperative languages don't allow in variable names. (Example: in Clojure you can have a symbol with the name +a-.)
57. What is the syntax of the "if" function?
58. True or False? Arity is the number of arguments a function can handle.
59. A function can be stored in a var or passed as an argument to other functions.
60. Which of the following Clojure fragments calculates (4+2)*(5-3)?
61. Clojure strings are Java Strings and are represented in exactly the same way, delimited by double quotes.
62. What does the REPL tool do?
63. Which is a type of collection in Clojure?
64. In Clojure, you can create a new class using _____
65. Clojure documentation can be accessed
66. True or False? Sets are collections of unique items. They are better than lists and vectors when duplicates aren't allowed.
67. Which of the following code fragments evaluates to 5?
68. Which statement best describes protocols in Clojure?
69. Clojure is hosted on the JVM (Java Virtual Machine) and can use any Java library.
70. What does the "contains?" function work on?
71. Agents _____
72. (.split "Java String" " ") returns
73. Atoms _____
74. What provides synchronous changes to a single, thread-local value?
75. If you want to create class that extends another class, you must use _____
76. A _______ is a construct that suspends some body of code, evaluating it upon demand, when it is "deref"erenced.
77. The application of advice or other aspect transformations is often called __________.
78. Refs _____
79. The Clojure reader can be extended using _____
80. (letfn [ (t [] (true? (some true? ["false"])))] (t))
81. What's the value returned by... (let [[x y [z]] [2 4 [8 9]]] (list x y z))
82. How many ways can you safely share mutable data using Clojure?
83. What is the Closure equivalent to ClassName.class in Java?
84. A Clojure sequence is a Java