Values in F# are mutable by default, meaning they can be changed at any time within
their scope.
(False)
The F# Software Foundation (FSSF) is a non-profit organization that is independent of
Microsoft.
(True)
F# 2.0 was first introduced as a standalone research project and was never shipped
inside Visual Studio.
(False)
In F#, indentation defines the scope of blocks like loops and functions.
(True)
The let keyword is used only for declaring constant values.
(False)
This specialized translator program translates F# source code into .NET Common
Intermediate Language (CIL).
F# Compiler (fsc)
This feature allows a developer to create a new variable with the same name as an
existing one, effectively hiding the old one.
Shadowing
This non-blocking loop construct, introduced in recent versions of F#, allows
asynchronous control flow to remain as readable as standard imperative logic.
while! (while-bang)
Which data structure in F# is an ordered, immutable collection of elements that must all
be of the same type?
List
What specific operator is used in F# to denote “not equal to”?
<>
What modern hardware architectures are compatible with F# through the .NET runtime.
● x64
● ARM32
● ARM64
Name the key features of F# mentioned in the report that defines its core identity or
functionality.
● Pattern Matching
● First-Class Functions
● Computation Expressions
● Type Inference
● Immutability
Name the two programming paradigms supported by F# in addition to functional
programming.
● Object-oriented
● Imperative
Name two ways F# handles program-level abstraction.
● Modules
● Namespaces
What are the two (2) diagnostic controls introduced in recent versions of F# to enforce
stricter code quality?
● #warnon
● #nowarn
Explain the difference between a “List” and an “Array” in F# syntax and memory
structure.
In F#, a List is an immutable, linked structure where elements cannot be changed
after creation. An Array is a fixed-size, mutable sequence that allows direct
access to elements and can be modified.
Describe how “Pattern Matching” works as a control-level structure.
Pattern matching allows a program to branch based on the “shape” or value of
data. It compares an expression against a series of patterns and executes the
code block associated with the first match.
Discuss the role of “Modules” in organizing F# code.
Modules are used to group related functions, values, and types together. They
provide a way to encapsulate code, manage scope, and create a clean hierarchy
within a project.
How does F# handle “Null” values differently than traditional C-style languages?
F# minimizes the use of nulls by encouraging the use of the Option type (Some
or None). Recent versions also include “safer null handling” that allows the
compiler to statically verify reference types to prevent runtime errors.
What is the significance of “Immutability by Default” in F# program structure?
Because values cannot be changed by default, code is more predictable and
easier to debug. This structure simplifies concurrent programming because
different parts of a program can safely access the same data without fear of it
being modified unexpectedly.