LambdaMOO Takehome Exam

  1. LambdaMOO is
    1. network-accessible and multi-user
    2. programmable and interactive
    3. well-suited to the construction of text-based adventure games
    4. all of the above

  2. The two major components in the LambdaMOO system are
    1. server and database
    2. room and exit
    3. integer and string
    4. verb and property

  3. The LambdaMOO server is a program that
    1. manages the network connections
    2. maintains queues of commands and other tasks to be executed
    3. controls all access to the database
    4. all of the above

  4. Almost every command is parsed by the LambdaMOO server into a call on
    1. an object
    2. a property
    3. a verb
    4. both a and b are true

  5. Character strings are arbitrarily-long sequences of
    1. floating point numbers
    2. double-quotes
    3. login names
    4. normal, ASCII printing characters

  6. The three special object numbers used for a variety of purposes: #-1, #-2, and #-3, are usually referred to as
    1. object, verb and property
    2. $nothing, $ambiguous_match, and $failed_match
    3. @create, @dig, and @describe
    4. integer, string, and list

  7. The error value E_VERBNF stands for
    1. Verb not found
    2. Variable not found
    3. Too many verb calls
    4. Invalid argument

  8. A list in LambdaMOO is a sequence of
    1. arbitrary MOO values
    2. strings and nothing else
    3. strings and numbers, but not objects
    4. none of the above

  9. An object exists in LambdaMOO
    1. when you write down its number
    2. after you call the `create()' function
    3. after you call the recycle() function
    4. none of the above

  10. Every object in LambdaMOO is made up of three kinds of pieces that together define its behavior
    1. rooms, exits, and descriptions
    2. verbs, properties, and flags
    3. attributes, properties, and verbs
    4. all of the above

  11. The three fundamental attributes to every object in LambdaMOO are
    1. player flag, parent, and list of children
    2. browser, editor, and applet
    3. client, server, and network
    4. none of the above

  12. The parent/child hierarchy in LambdaMOO is used for
    1. classifying objects into general classes
    2. sharing behavior among all members of a class
    3. implementing recursion
    4. both a and b are true

  13. The very essence of what is meant by object-oriented programming is captured in the notion of
    1. variables and memory locations
    2. looping iteration
    3. classes and specialization
    4. all of the above

  14. When an object has a property corresponding to every property in its parent object, this is a kind of
    1. variable binding
    2. method of invocation
    3. inheritance
    4. property permission

  15. A verb in LambdaMOO is
    1. a named MOO program that is associated with a particular object
    2. like a method in C++
    3. a place to store objects
    4. both a and b are true

  16. The LambdaMOO server command parser breaks apart commands of the form
    1. verb
    2. verb direct-object
    3. verb direct-object preposition indirect-object
    4. all of the above

  17. After the LambdaMOO command parser has identified a verb string, a preposition string, and direct- and indirect-object strings and objects. It then looks at each of the verbs defined on each of the following four objects, in order:
    1. player, room, direct-object, indirect-object
    2. player, exit, client, server
    3. over, under, sideways, down
    4. player, direct-object, indirect-object, children of player

  18. The ancient precursors to MUDs were
    1. Oregon Trail and Amazon Trail
    2. Asteroids and Maelstrom
    3. Pong and Donkey Kong
    4. Adventure and Zork

  19. The expression 13 + (x = 17) in the LambdaMOO language
    1. returns true
    2. changes the value of `x' to be 17 and returns 30
    3. changes the value of `x' to be 17 and returns 47
    4. none of the above

  20. The x (execute) bit on a LambdaMOO verb determines
    1. whether or not it exists
    2. whether or not it exits
    3. whether or not the verb can be invoked from within a MOO program (as opposed to from the command line)
    4. all of the above

  21. Integers and floating-point numbers in LambdaMOO
    1. are indistinguishable from each other
    2. are used interchangably
    3. cannot be mixed because LambdaMOO does not automatically coerce integers into floating-point numbers
    4. form a new numeric type when they are mixed

  22. When the code for a LambdaMOO verb begins execution, the following built-in variables will have the indicated values:
    1. player is who typed the command
    2. this is the object on which the verb was found
    3. $g is where local variables are stored
    4. both a and b are true

  23. The following conditional expression in LambdaMOO
    expression-1 ? expression-2 | expression-3
    is evaluated as
    1. if expression-1 is true, return expression-2 otherwise return expression-3
    2. if expression-3 is true, return either expression-1 or expression-2
    3. guess between expression-1 and expression-2
    4. none of the above

  24. In following indexing expression in LambdaMOO extracts a specified element from a list or string,
    expression-1[expression-2]
    but if expression-1 is not a list or string, or expression-2 is not an integer
    1. an integer is returned
    2. a floating point number is returned
    3. an object is returned
    4. an error is returned

  25. The range expression in LambdaMOO extracts a specified subsequence from a list or string. What does the following expression return:
    "foobar"[2..$]
    1. "oobar"
    2. "foob"
    3. "ooba"
    4. an error is returned

  26. The list membership expression in LambdaMOO tests whether or not a given MOO value is an element of a given list and, if so, with what index. What is the value returned by the following expression:
    2 in {5, 8, 2, 3}
    1. 5
    2. 8
    3. 2
    4. 3

  27. Assume that the variable 'a' has the value {2, 3, 4} and that 'b' has the value {"Foo", "Bar"}. The 'splicing' operator is '@'. What is the result of the expression: {1, @a, 5}
    1. {1, @a, 5}
    2. {1, {2, 3, 4}, 5}
    3. {1, 2, 3, 4, 5}
    4. both b and c are true

  28. The built-in LambdaMOO function, tostr (value, ...)
    1. Throws value to the caller
    2. Passes value to a toasting function
    3. Converts all of the given MOO values into strings and returns the concatenation of the results.
    4. None of the above

  29. An assignment expression that looks like this:
    {target, ...} = expr
    is called a
    1. a targeting expression
    2. an expr expression
    3. a scattering assignment
    4. none of the above

  30. The `location' and `contents' properties of a LambdaMOO object describe
    1. the wizard and programmer bits
    2. the name and owner of an object
    3. the r (read) and w (write) bits
    4. a hierarchy of object containment