Skip to content

Search content

  1. Part 1
    3 min read

    From F# to Gleam > 1: From FSI to Your 1st Gleam Project

    Bring your F# instincts to Gleam, create a small project, and learn the differences in values, operators, and the development loop.

  2. Part 2
    3 min read

    From F# to Gleam > 2: Records, Custom Types, and Pattern Matching

    Translate F# records and discriminated unions into Gleam custom types, immutable updates, and exhaustive case expressions.

  3. Part 3
    3 min read

    From F# to Gleam > 3: Functions, Pipelines, and Partial Application

    Keep F#'s compositional style while adapting to Gleam's uncurried functions, pipeline argument order, and function captures.

  4. Part 4
    3 min read

    From F# to Gleam > 4: Lists, Dictionaries, and Eager Transformations

    Translate F# collection pipelines into Gleam lists and dictionaries, with explicit folds, eager evaluation, and checked lookups.

  5. Part 5
    3 min read

    From F# to Gleam > 5: Option, Result, and Typed Errors

    Translate F# options and results into Gleam, distinguish absence from failure, and validate input with explicit error types.

  6. Part 6
    3 min read

    From F# to Gleam > 6: From Computation Expressions to use

    Understand Gleam's use syntax through F# result binding, then see why callback control flow isn't a computation-expression builder.

  7. Part 7
    3 min read

    From F# to Gleam > 7: Modules, Packages, and Tests

    Move from F# modules and NuGet projects to Gleam's file-based modules, Hex packages, opaque types, and Gleeunit tests.

  8. Part 8
    3 min read

    From F# to Gleam > 8: From MailboxProcessor to BEAM Processes

    Translate an F# mailbox into a typed Gleam message loop and learn how BEAM process ownership, links, and timeouts change the design.

  9. Part 9
    3 min read

    From F# to Gleam > 9: Erlang, JavaScript, and Foreign Functions

    Move from .NET interop to Gleam's target-specific foreign functions, test an encoding contract on both runtimes, and keep unsafe boundaries small.