Common Lisp quiz

A few years ago I started collecting random bits of Common Lisp trivia to use for a "purity test" of sorts. Progress has stalled, and some of the bits have turned into lisptips. I don't think I'll ever finish it, so here is the unfinished work for your amusement and/or enlightenment.

======== backquote-comma-dot ====

Something about ,. vs. ,@ in backquotes.


======== binding-streams ====

Which standardized stream variable may not be bound or assigned?

- *debug-io*

- *terminal-io*

- *query-io*

- None of the above

Ref: 21.1.2: "User programs may assign or bind any standardized stream
variable except *terminal-io*."

======== boa-acronym ====

For a "BOA constructor", what does BOA stand for?

- Beginning Of Array

- By Order of Arguments

- Bounded Operation Accessor

- Bidirectional Open Atom

Ref: defstruct




======== char-code ====

What value is acceptable as the return value of (char-int #\a)?

- 32

- 97

- 10

- All of the above

======== cl-package-constraints-title ====

What is the title of section 11.1.2.1.2 in the CLHS?

- Constraints on the COMMON-LISP Package for Conforming Programs

- LOOP Value Accumulation Clauses

- Examples of Suppressing Keyword Argument Checking

- None of the above

Ref: 11.1.2.1.2

======== cl-user-default-packages ====

What packages are in the COMMON-LISP-USER package use list?

- It is implementation-defined and no specific packages are specified

- It is implementation-defined but must include the COMMON-LISP
  package

- No packages

- COMMON-LISP and one of EXT, SYS, or IMPL

Ref: 11.1.2.2

======== deftype-optional-default ====

What is the default value for optional and keyword arguments in
DEFTYPE where no default is explicitly provided in the deftype lambda
list?

- T

- NIL

- *

- None of the above

Ref: deftype

======== digit-char-p ====

What function will return the integer 5 given the character #\5?

- PARSE-INTEGER

- CHAR-DIGIT-WEIGHT

- DIGIT-CHAR-P

- CHAR-CODE

Ref: digit-char-p

======== dot-dot-dot-reading ====

11:01 [tcr] There's possibly another one: "Why is
          '.. or '... not valid syntax to denote a symbol?" Answer: it's
          explicitly forbidden so READ will choke on the attempt to read print
          representations of forms where the printer introduced abbreviations
          due to *print-length*/*print-level*
11:04 [tcr]
          http://www.lispworks.com/documentation/HyperSpec/Body/02_di.htm

======== eql-is-default ====

What is the default test function for most operations? [be more
precise, maybe per 17.2.1]

- EQ

- EQL

- EQUALP

- =

Ref: 17.2.1

======== file-position-designator ====

Which of the following is not a file position designator?

- 42

- :start

- :end

- None of the above

======== format-empty-curlybrace ====

In a format string, what does "~{~}" mean?

- Nothing, it is an error to have nothing between ~{ and ~}

- Causes an infinite loop

- Uses the next argument to FORMAT as the internal format control
  string

- None of the above

Ref: 22.3.7.4

======== format-hash-arg ====

What does (format nil "~#,vD" #\8 0 0 0) return?

- "8880"

- "0008"

- "0"

- None of the above


======== get-first-element ====

Which of the following forms do NOT return the first element of LIST?

- (first list)

- (car list)

- (nth 1 list)

- None of the above

Ref: nth

======== implicit-tagbody ====

Which of the following macros does NOT have an implicit PROGN?

- DEFUN

- WHEN

- DOLIST

- None of the above

Ref: tagbody page

======== longest-function-name ====

What is the longest exported symbol name in the COMMON-LISP package?

- UPDATE-INSTANCE-FOR-REDEFINED-CLASS

- UPDATE-INSTANCE-FOR-DIFFERENT-CLASS

======== make-package-defaults ====

If you do not provide an explicit :USE argument to MAKE-PACKAGE, what
can you say about the list of packages that the newly created package
uses?

- The list consists only of the COMMON-LISP package.

- The list is implementation-dependent but always includes the
  COMMON-LISP pacakge.

- The list might be empty.

- None of the above.


======== not-a-function ====

Which of the following symbols does not name a Common Lisp function?

- PAIRLIS

- REVAPPEND

- CONJUGATE

- None of the above

Other possibilities: SCHAR, PHASE, MAKE-INSTANCES-OBSOLETE,
MAKE-LOAD-FORM-SAVING-SLOTS (from tcr)

======== not-a-string-designator ====

Which of the following is NOT a string designator?

- :foo

- #\x

- #xBA5

- None of the above

Ref: glossary for string designator, string function

======== odd-forms ====

Which form is illegal syntax? [not really syntax, but]

- (defvar *foo*)

- (aref array)

- (*)

- None of the above


======== sharpquote-let ====

13:51 <stassats`> i like (let (#'1) (+ function 2)) => 3
13:51 <pjb> (let (#'1 '2) (+ function quote))

======== zero-dimensional-arrays ====

Something about (aref thing) or (setf (aref thing) 42), and
(make-array nil :initial-element 42), etc.

Tags:

Comments

September 2014

S M T W T F S
 123456
78910111213
14151617181920
21222324252627
282930    
Powered by LiveJournal.com