union case Shape.Square: edge: float -> Shape
Multiple items
val float : value:'T -> float (requires member op_Explicit)

Full name: Microsoft.FSharp.Core.Operators.float

--------------------
type float = System.Double

Full name: Microsoft.FSharp.Core.float

--------------------
type float<'Measure> = float

Full name: Microsoft.FSharp.Core.float<_>
union case Shape.Rectangle: width: float * height: float -> Shape
union case Shape.Circle: radius: float -> Shape
type Tree =
  | Empty
  | Node of value: int * left: Tree * right: Tree

Full name: Index.Tree
union case Tree.Empty: Tree
union case Tree.Node: value: int * left: Tree * right: Tree -> Tree
Multiple items
val int : value:'T -> int (requires member op_Explicit)

Full name: Microsoft.FSharp.Core.Operators.int

--------------------
type int = int32

Full name: Microsoft.FSharp.Core.int

--------------------
type int<'Measure> = int

Full name: Microsoft.FSharp.Core.int<_>
val tree : Tree

Full name: Index.tree
val printf : format:Printf.TextWriterFormat<'T> -> 'T

Full name: Microsoft.FSharp.Core.ExtraTopLevelOperators.printf
val sprintfResult : string

Full name: Index.sprintfResult
val sprintf : format:Printf.StringFormat<'T> -> 'T

Full name: Microsoft.FSharp.Core.ExtraTopLevelOperators.sprintf
val countInternal : tree:Tree -> int

Full name: Index.countInternal
val tree : Tree
val left : Tree
val right : Tree
val ( example 1.1 ) : int

Full name: Index.( example 1.1 )
val sumLeaves : tree:Tree -> int

Full name: Index.sumLeaves
val ( exercise 1.1 ) : int

Full name: Index.( exercise 1.1 )
val firstList : int list

Full name: Index.firstList
val secondList : int list

Full name: Index.secondList
val concatenatedList : int list

Full name: Index.concatenatedList
val collectLeaves : tree:Tree -> int list

Full name: Index.collectLeaves
type 'T list = List<'T>

Full name: Microsoft.FSharp.Collections.list<_>
val v : int
val ( example 1.2 ) : int list

Full name: Index.( example 1.2 )
val collectInOrder : tree:Tree -> int list

Full name: Index.collectInOrder
val ( exercise 1.2 ) : int list

Full name: Index.( exercise 1.2 )
val isSorted : tree:Tree -> bool

Full name: Index.isSorted
type bool = System.Boolean

Full name: Microsoft.FSharp.Core.bool
val ( exercise 1.3 ) : bool

Full name: Index.( exercise 1.3 )
val incrementValues : tree:Tree -> Tree

Full name: Index.incrementValues
val ( example 1.4 ) : int list

Full name: Index.( example 1.4 )
val insertBST : value:int -> tree:Tree -> Tree

Full name: Index.insertBST
val value : int
val ( exercise 1.4 ) : int list

Full name: Index.( exercise 1.4 )
type Figure =
  | Two
  | Three
  | Four
  | Five
  | Six
  | Seven
  | Eight
  | Nine
  | Ten
  | Jack
  ...

Full name: Index.Figure
union case Figure.Two: Figure
union case Figure.Three: Figure
union case Figure.Four: Figure
union case Figure.Five: Figure
union case Figure.Six: Figure
union case Figure.Seven: Figure
union case Figure.Eight: Figure
union case Figure.Nine: Figure
union case Figure.Ten: Figure
union case Figure.Jack: Figure
union case Figure.Queen: Figure
union case Figure.King: Figure
union case Figure.Ace: Figure
type Suit =
  | Diamonds
  | Spades
  | Hearts
  | Clubs

Full name: Index.Suit
union case Suit.Diamonds: Suit
union case Suit.Spades: Suit
union case Suit.Hearts: Suit
union case Suit.Clubs: Suit
type Card = Figure * Suit

Full name: Index.Card
type Hand = Card list

Full name: Index.Hand
val oddNumbers : int list

Full name: Index.oddNumbers
Multiple items
module List

from Microsoft.FSharp.Collections

--------------------
type List<'T> =
  | ( [] )
  | ( :: ) of Head: 'T * Tail: 'T list
  interface IEnumerable
  interface IEnumerable<'T>
  member GetSlice : startIndex:int option * endIndex:int option -> 'T list
  member Head : 'T
  member IsEmpty : bool
  member Item : index:int -> 'T with get
  member Length : int
  member Tail : 'T list
  static member Cons : head:'T * tail:'T list -> 'T list
  static member Empty : 'T list

Full name: Microsoft.FSharp.Collections.List<_>
val filter : predicate:('T -> bool) -> list:'T list -> 'T list

Full name: Microsoft.FSharp.Collections.List.filter
val n : int
val kingSpades : Figure * Suit

Full name: Index.kingSpades
val figure : Figure

Full name: Index.figure
val suit : Suit

Full name: Index.suit
val isKingSpades : bool

Full name: Index.isKingSpades
val queenHearts : Figure * Suit

Full name: Index.queenHearts
val queen : Figure

Full name: Index.queen
val fst : tuple:('T1 * 'T2) -> 'T1

Full name: Microsoft.FSharp.Core.Operators.fst
val hearts : Suit

Full name: Index.hearts
val snd : tuple:('T1 * 'T2) -> 'T2

Full name: Microsoft.FSharp.Core.Operators.snd
val threeKings : (Figure * Suit) list

Full name: Index.threeKings
val ( example 2.1 ) : bool

Full name: Index.( example 2.1 )
val forall : predicate:('T -> bool) -> list:'T list -> bool

Full name: Microsoft.FSharp.Collections.List.forall
val figure : Figure
val suit : Suit
val handFlush : (Figure * Suit) list

Full name: Index.handFlush
val isFlush : hand:Hand -> bool

Full name: Index.isFlush
val hand : Hand
val ( exercise 2.1 ) : bool

Full name: Index.( exercise 2.1 )
val mapModThree : bool list

Full name: Index.mapModThree
val map : mapping:('T -> 'U) -> list:'T list -> 'U list

Full name: Microsoft.FSharp.Collections.List.map
val groupModThree : (int * int list) list

Full name: Index.groupModThree
val groupBy : projection:('T -> 'Key) -> list:'T list -> ('Key * 'T list) list (requires equality)

Full name: Microsoft.FSharp.Collections.List.groupBy
val ( example 2.2 ) : (char * int) list

Full name: Index.( example 2.2 )
val word : string
System.String.ToCharArray() : char []
System.String.ToCharArray(startIndex: int, length: int) : char []
val letter : char
val words : string list
property List.Length: int
val handFullHouse : (Figure * Suit) list

Full name: Index.handFullHouse
val isFullHouse : hand:Hand -> bool

Full name: Index.isFullHouse
val ( exercise 2.2 ) : bool

Full name: Index.( exercise 2.2 )
type Point =
  {X: float;
   Y: float;}

Full name: Index.Point
Point.X: float
Point.Y: float
type CenteredShape =
  {Shape: Shape;
   Center: Point;}

Full name: Index.CenteredShape
Multiple items
CenteredShape.Shape: Shape

--------------------
type Shape =
  | Square of edge: float
  | Rectangle of width: float * height: float
  | Circle of radius: float

Full name: Index.Shape
CenteredShape.Center: Point
val point : Point

Full name: Index.point
val shape : CenteredShape

Full name: Index.shape
type Shape =
  | Square of edge: float
  | Rectangle of width: float * height: float
  | Circle of radius: float

Full name: Index.Shape
val pointX : float

Full name: Index.pointX
val shapeField : Shape

Full name: Index.shapeField
CenteredShape.Shape: Shape
val shapesAreEqual : bool

Full name: Index.shapesAreEqual
val forthAndBack : float list

Full name: Index.forthAndBack
val x : float
val sqrt : value:'T -> 'U (requires member Sqrt)

Full name: Microsoft.FSharp.Core.Operators.sqrt
val withCenterIn : point:Point -> shapes:CenteredShape list -> CenteredShape list

Full name: Index.withCenterIn
val point : Point
val shapes : CenteredShape list
val shape : CenteredShape
val ( example 2.3 ) : CenteredShape list

Full name: Index.( example 2.3 )
val isCircumcircle : centeredCircle:CenteredShape -> centeredShape:CenteredShape -> bool

Full name: Index.isCircumcircle
val centeredCircle : CenteredShape
val centeredShape : CenteredShape
val ( exercise 2.3 ) : bool list

Full name: Index.( exercise 2.3 )
val first : CenteredShape
val second : CenteredShape
val zeroSquare : CenteredShape

Full name: Index.zeroSquare
val squareMoved : CenteredShape

Full name: Index.squareMoved
val circleWithSameCenter : CenteredShape

Full name: Index.circleWithSameCenter
val translate : vectorPoint:Point -> shape:CenteredShape -> CenteredShape

Full name: Index.translate
val vectorPoint : Point
val ( example 2.4 ) : CenteredShape list

Full name: Index.( example 2.4 )
val scale : magnitude:float -> centeredShape:CenteredShape -> CenteredShape

Full name: Index.scale
val magnitude : float
val ( exercise 2.4 ) : CenteredShape list

Full name: Index.( exercise 2.4 )
Multiple items
val char : char

--------------------
type char = System.Char

Full name: Microsoft.FSharp.Core.char
val zero : int
namespace System
type Convert =
  static val DBNull : obj
  static member ChangeType : value:obj * typeCode:TypeCode -> obj + 3 overloads
  static member FromBase64CharArray : inArray:char[] * offset:int * length:int -> byte[]
  static member FromBase64String : s:string -> byte[]
  static member GetTypeCode : value:obj -> TypeCode
  static member IsDBNull : value:obj -> bool
  static member ToBase64CharArray : inArray:byte[] * offsetIn:int * length:int * outArray:char[] * offsetOut:int -> int + 1 overload
  static member ToBase64String : inArray:byte[] -> string + 3 overloads
  static member ToBoolean : value:obj -> bool + 17 overloads
  static member ToByte : value:obj -> byte + 18 overloads
  ...

Full name: System.Convert
System.Convert.ToInt32(value: System.DateTime) : int
   (+0 other overloads)
System.Convert.ToInt32(value: string) : int
   (+0 other overloads)
System.Convert.ToInt32(value: decimal) : int
   (+0 other overloads)
System.Convert.ToInt32(value: float) : int
   (+0 other overloads)
System.Convert.ToInt32(value: float32) : int
   (+0 other overloads)
System.Convert.ToInt32(value: uint64) : int
   (+0 other overloads)
System.Convert.ToInt32(value: int64) : int
   (+0 other overloads)
System.Convert.ToInt32(value: int) : int
   (+0 other overloads)
System.Convert.ToInt32(value: uint32) : int
   (+0 other overloads)
System.Convert.ToInt32(value: uint16) : int
   (+0 other overloads)
type Char =
  struct
    member CompareTo : value:obj -> int + 1 overload
    member Equals : obj:obj -> bool + 1 overload
    member GetHashCode : unit -> int
    member GetTypeCode : unit -> TypeCode
    member ToString : unit -> string + 1 overload
    static val MaxValue : char
    static val MinValue : char
    static member ConvertFromUtf32 : utf32:int -> string
    static member ConvertToUtf32 : highSurrogate:char * lowSurrogate:char -> int + 1 overload
    static member GetNumericValue : c:char -> float + 1 overload
    ...
  end

Full name: System.Char
System.Char.IsDigit(c: char) : bool
System.Char.IsDigit(s: string, index: int) : bool
union case Option.Some: Value: 'T -> Option<'T>
union case Option.None: Option<'T>
val digit : string

Full name: Index.digit
active recognizer Digit: char -> int option

Full name: Index.( |Digit|_| )
val x : int
System.Int32.ToString() : string
System.Int32.ToString(provider: System.IFormatProvider) : string
System.Int32.ToString(format: string) : string
System.Int32.ToString(format: string, provider: System.IFormatProvider) : string
val matchNext5 : list:int list -> int list

Full name: Index.matchNext5
Multiple items
val list : int list

--------------------
type 'T list = List<'T>

Full name: Microsoft.FSharp.Collections.list<_>
val rest : int list
val ( example 3.1 ) : int list

Full name: Index.( example 3.1 )
val parseScore : chars:char list -> Option<int> list

Full name: Index.parseScore
val chars : char list
Multiple items
val char : value:'T -> char (requires member op_Explicit)

Full name: Microsoft.FSharp.Core.Operators.char

--------------------
type char = System.Char

Full name: Microsoft.FSharp.Core.char
module Option

from Microsoft.FSharp.Core
val ( exercise 3.1 ) : Option<int> list

Full name: Index.( exercise 3.1 )
val onlyEvenNumber : optNumber:int option -> string

Full name: Index.onlyEvenNumber
val optNumber : int option
val onlyEvenNumbers : string list

Full name: Index.onlyEvenNumbers
val numTriangle : numbers:int list -> int list

Full name: Index.numTriangle
val numbers : int list
val first : int
val second : int
val triangle : int list

Full name: Index.triangle
val countScore : scores:int list -> int

Full name: Index.countScore
val scores : int list
val ( exercise 3.2 ) : int list

Full name: Index.( exercise 3.2 )
val sequence : optionals:'a option list -> 'a list option

Full name: Index.sequence
val optionals : 'a option list
type 'T option = Option<'T>

Full name: Microsoft.FSharp.Core.option<_>
val sequence' : ('b list option -> 'b option list -> 'b list option)
val acc : 'b list option
val optionals : 'b option list
val map : mapping:('T -> 'U) -> option:'T option -> 'U option

Full name: Microsoft.FSharp.Core.Option.map
val rev : list:'T list -> 'T list

Full name: Microsoft.FSharp.Collections.List.rev
val h : 'b
val t : 'b option list
val acc : 'b list
val oneOption : string list option

Full name: Index.oneOption
val bowlingScore : score:string -> Option<int>

Full name: Index.bowlingScore
val score : string
Multiple items
val string : value:'T -> string

Full name: Microsoft.FSharp.Core.Operators.string

--------------------
type string = System.String

Full name: Microsoft.FSharp.Core.string
val ( homework 1 ) : Option<int> list

Full name: Index.( homework 1 )
val parseScoreTail : chars:char list -> acc:Option<int> list -> Option<int> list

Full name: Index.parseScoreTail
val acc : Option<int> list
val countScoreTail : scores:int list -> acc:int -> int

Full name: Index.countScoreTail
val acc : int
val bowlingScoreTail : score:string -> Option<int>

Full name: Index.bowlingScoreTail
val ( homework 2 ) : Option<int>

Full name: Index.( homework 2 )

F# CAMP

Functional Data Structures

1: 
git clone https://github.com/theimowski/fsharp-workshops-data.git

or download ZIP from here, then in Command Prompt:

1: 
2: 
cd fsharp-workshops-data
.\build.cmd KeepRunning

slides are regenerated when the script (.\slides\index.fsx) is saved

==> NOTE: this is a different GIT repository, don't mix it with the one from previous workshops

F# CAMP Functional Data Structures 1: git clone https://github.com/theimowski/fsharp-workshops-data.git or download ZIP from here, then in Command Prompt: 1: 2: cd fsharp-workshops-data .\build.cmd KeepRunning slides are regenerated when the script (.\slides\index.fsx) is saved ==> NOTE: this is a different GIT repository, don't mix it with the one from previous workshops