Elance Scala Test Answers



When importing all the names of a package or class, which character do you use instead of " * "?

"_"
"$"
"@"
"&"

 

 

What is the defaut parameter call semantics?

By Inference
By Value
By Name
By Reference

 

 

What is the largest Tuple that Scala supports?

16
22
20
2

 

 

What is a higher-order function?

Scala does not support higher-order functions
Higher-order functions are parameterless functions that return themselves
Higher-order functions are functions that return functions
Higher-order functions are functions that take other functions as parameters.

 

 

When a class inherits from a trait, it inherits all the code contained in the trait and implements the trait's:

Arguments
Interface
Framework
Platform

 

 

Everything, including numbers and functions, are _______ in Scala.

Objects
Operations
Methods
Booleans

 

 

Scala's "Unit" roughly corresponds to which Java type?

"get"
"null"
"void"
"bool"

 

 

What is a class with a single instance?

A mono object
A singleton object
A static object
A single argument

 

 

When no super-class is specified, ______ is implicitly used.

scala.importRef
You must always specify super-class
scalac use.ref
scala.AnyRef

 

 

What is the name of the Scala compiler?

"cScala"
"scala.comp"
"scalacom"
"scalac"

 

 

Which of the following best describes Scala?

An object oriented language
A functional language
All of these choices describe Scala
A language that runs on the VM

 

 

True or False? Like pre 1.5 Java, Scala suffers from lack of genericity.

True
False

 

 

Does Scala support the return keyword?

Yes, but it is not idiomatic Scala and therefor discouraged.
No
Yes, all methods and functions must have at least one return statement.
Yes, but only for traits.

 

 

True or False? Multiple classes can be imported from the same package by enclosing them in curly braces {}.

False
True

 

 

Scala is:

An advanced Java language implemented by Martin Odersky
An object-functional language that supports functional programming constructs
A pure functional programming language
A dynamic language that can be used to program in object-oriented style efficiently
An advanced Object-Oriented Language much better than Java that runs on the JVM

 

 

What is an expression following the "if" keyword?

A tree
An array
A guard
A wild-card

 

 

Which statement best describes an Iterator

Scala does not support Iterators
An Iterator is a stream of incoming items where advancing to the next item consumes the current item
An Iterator trait is mixed into all collection types
An iterator is a collection type

 

 

True or False? Methods taking one argument can be used with infix syntax?

False
True

 

 

Explain how "abc".length returns 3

A subclass of java.lang.String is generated at runtime, adding the `length` method to its signature.
All string literals can be processed by Scala String interpreter.
All string literals are an instance of scala.collection.immutable.StringOps
An implicit conversion converts the java.lang.String into a scala.collection.immutable.StringOps, which supports a length method.

 

 

True or False? Scala compiler will never require you to specify the result type of a function.

False
True

 

 

What is the value of the following expression? { val a = List(1,2,3) val b = List(4,5,6) (a,b).zipped.map(_+_) }

List(1,2,3,4,5,6)
(List(1,2,3),List(4,5,6))
List(5,7,9)
21
List((1,4),(2,5),(3,6))

 

 

Which of the following is a pattern matching any value, without giving it a name, represented by " _ "?

A simple class
A function
A placeholder
A guard

 

 

Witch one of the following operators is use for sequencing Parsers

!
*
~
|

 

 

It is possible to override methods inherited from a _____ in Scala.

Function-class
Base-class
Super-script
Super-class

 

 

Which statement is true about sealed classes.

A sealed class' instances cannot be modified.
A sealed class may not be directly inherited, except if it is defined in the same source file.
There is no such thing as a sealed class.
A subclass of a sealed class can inherited anywhere only within the same package.

 

 

Does Scala support tail-call recursion?

Yes, the JVM runtime supports tail-call optimization.
Partly, because the stack is infinite in Scala.
No
Partly at the compiler level. The compiler will try and unwind the recursive call into a loop.

 

 

Which statement best describes a partial function?

A partially defined function.
An internal function type that is used by the scala.collection.immutable package.
A function that support currying
When applying the function, you do not pass in arguments for all of the parameters defined by the function, but only for some of them, leaving the remaining ones blank

 

 

What is the tool "schema2src" used for?

Currying
Unifying types
Sealing classes
Data-binding

 

 

Describe class AnyRef

AnyRef is the root Object in Scala
All types except the value types descend from AnyRef
AnyRef is derived from AnyVal
There is no such class

 

 

Scala supports which types of polymorphism?

None of these
Subtype and parametric
Parametric
Subtype, ad-hoc and parametric polymorphism
Ad-hoc and parametric

 

 

In the expression: List(1,2,3) reduceLeft ( (a,b) => a+b ) `b` refers to:

The next element in the list
The current sum while iterating through the list
The "fold" operation
The return value for the expression

 

 

Classes in Scala, in contrast to Java, can have ______.

Constructs
Functions
Concepts
Parameters

 

 

Which statement about case classes is false?

You can construct instances of these classes without using the new keyword
Case classes as sealed and therefor cannot be extended
The toString method is automatically redefined
The equals method is automatically redefined

 

 

What is the result type of the following expression? List(1, 2, true, false)

List[AnyVal]
List[Boolean]
List[Int]
List[Any]
List[AnyRef]

 

 

The following code will > var x=100; var y=200; x->y

a Tuple with Arity 2
automatically create a List[T] with x and y as members with T of 'Int' type
assign 100 to variable y
treat x and y as same references in the further code
produce a compile error

 

 

A valid description of a covariant type parameter would be:

A type parameter which is allowed to vary up for super types.
A type parameter which is allowed to vary down as the class is subtyped.
A type parameter which is fixed for super types.
A type parameter which is fixed when the class is subtyped.

 

 

`Nil` is generally the same as:

List()
Nothing
null
None

 

 

In Scala, type parameters and abstract types may be constrained by a _____.

Type call
Type bound
Type safe
Type function

 

 

If you are defining scala classes in a 'package examplepackage', and want to ensure that a function 'foo' is only accessible by classes defined in the same package, how would you declare that function?

def foo={...} //default access
private[examplepackage] def foo = {...}
package def foo={...}//package private
[examplepackage]private def foo={...}
package[examplepackage] def foo={...}

 

 

What would be the result of: Option[String]("hi") match { case None=> "hello!" }

Nothing would happen because "hi" is not of type "None"
The statement would return "hello!"
A NullPointerException would be thrown.
A MatchError would be thrown.

 

 

In the expression: List(1,2,3).foldLeft(x){case (a,b) => a+b} `x` is:

A default value, only used if the list is empty
The "accumulator," which is the initial value for `a`
A list, to which the results are appended.
The "accumulator," which is the initial value for `b`

 

 

True or False? Scala provides static members (members or fields).

False
True

 

 

Which statement about pattern matching is true?

Patterns do not work with structural types
The order of the pattern match is irrelevant
The case set must be exhaustive
Pattern matching does not work with case classes

 

 

Which statement about List is false?

List is a proxy for java.util.ArrayList
A List is covariant
A List is optimal for last-in-first-out (LIFO), stack-like access patterns
A List is a finite immutable sequence

 

 

How would you define the method: def +(a:Int):Int in a Java interface that will be overriden or used in Scala code?

public int $plus(int a)
public int %plus(int a)
private int $plus(int a)
You can't define a scala operator using Java source code.
public int #plus(int a)

 

 

True or False? In the Interpreter, you can define a new val with a name that was already used before.

False
True

 

 

What would be returned by the following function: def foo(l:List[Int]) = { var x=l.head; l.collect{ case a:Int if a>x => x=a; a }; x } When passed: List(2,4,6,8,6,3,1)

1
8
Nothing, there's no return value.
2
30

 

 

`() => Unit` is best described as

`() => Unit` is not valid Scala
A pure function
A function literal
A procedure type definition

 

 

What is a lazy var?

A variable that is only evaluated once
A variable that once evaluated can only be referenced by the creating scope.
An immutable variable
`lazy var` is not supported by Scala

 

 

What will the following function return: def foo(o:Any) = { o match { case Option(x) => "hi!" case anything => anything } } When passed a 'None' object?

it will return the None because it matches on 'anything'
It won't compile
It will return 'anything'
It will return "hi!" because a 'None' is a type of 'Option'

 

 

How would you get a List that was the result of appending `5:Int` to a `List(1,2,3)`. The order of the elements in the resulting List is irrelevant.

List(1,2,3) :: 5
List(1,2,3) :+ 5
List(1,2,3) ::= 5
List(1,2,3) + 5
List(1,2,3) :: List(5)

 

 

Which of these are NOT ways in which case classes differ from standard classes?

Getter functions are automatically defined for the constructor parameters
A default definition for method "toString" is provided, and prints the value in a source form
Default definitions for the methods "equals" and "hashCode" are not provided
The "new" keyword is not mandatory to create instances of case classes

 

 

What is the data type of myVariable in the following: val myVariable = if (true) "Hello"

String
Any
Unit

 

 

Are parenthesis `(` and curly braces `{` interchangeable?

Only if the method expects a partial function.
Not unless the function supports contravariant type parameters.
Not unless the function supports covariant type parameters.
Only if the method expects a single parameter.

 

 

Is it possible in Scala to declare a variable of type `Int` with a value of `null`?

Yes
No

 

 

Which statement about the Option[+A] class is false?

Option[+A] is meant to replace the usage of null.
Option[+A] is abstract.
scala.Nothing is derived from Option[+A]
None is derived from Option[+A]

 

 

Which predicate tests whether x is object identical to y?

x = y
x eq y
x == y
x.object == y.object

 

 

Which of the following descriptions of case classes is *NOT* correct:

Case classes can be used in matchers.
Case classes come with apply and unapply methods.
Case classes are always immutable.
Case classes have default serializers

 

 

def g(): Int = try { 1 } finally { 2 } Calling g() results in

Exception
2
1

 

 

Which of the following is not one of the ways to increment the value of a variable i of type Int by 1.

i = i + 1
i += 1
ii+
i++

 

 

"Option" is:

an abstract class
an interface
a trait
a concrete class
a case class

 

 

What is the Scala development environment designed for use in schools?

Venner
FODEM
Typesafe
Kojo

 

 

What is the runtime class of Unit?

Class[Unit]
Nothing
Unit
type[Unit]

 

 

A function which associates a value to a (variable) name is known as a(n):

Class
Environment
Method
Operation

 

 

def f(): Int = try { return 1 } finally { return 2 } Calling f() results in

1
2
Exception

 

 

True or False? Scala compiler automatically infers function parameter types.

False
True