OPFN
  • What is this thing?
    • A New Internet
    • Architecture
    • Runtime
  • Installation
    • Environment Setup
  • Quickstart Tutorial
    • "Hello World" Cog
    • Booting, Starting, Caching
    • JSON
    • Cog webserver end-to-end
  • Databases / Cogs
    • Introduction
    • Creating a Cog
    • Using a Cog
    • Inter-Cog Communication
  • Sire Reference
    • Intro
    • Runes
    • Miscellaneous
    • Standard Library
      • Bits (Booleans)
      • Natural Numbers
      • Comparisons
      • Characters and Strings
      • Rows
      • Lists
      • Either
      • Maybe
      • Sets
      • KV Tables
      • Pads
      • Bars
      • Types
  • Deeper
    • Nat Representations
    • R-Expressions
    • Seed files
    • Jets
    • Boot process
    • UI files
  • PLAN
    • In Depth
    • Definition
Powered by GitBook
On this page
  • NONE
  • SOME
  • maybeCase
  • maybe
  • fromSome
  • unpackSome
  • isSome
  • isNone
  • fmapMaybe
  • maybeGuard
  • maybeGuardNot
  1. Sire Reference
  2. Standard Library

Maybe

NONE

Represents the absence of a value in the Maybe type.

NONE    == 0

SOME

Wraps a value in the Maybe type.

SOME 5          == (0 5)
SOME b#hello    == (0 b#hello)
SOME []         == (0 [])

maybeCase

Pattern matches on a Maybe value, providing cases for NONE and SOME.

maybeCase NONE 0 inc              == 0
maybeCase (SOME 5) 0 inc          == 6
maybeCase (SOME b#a) b#none id    == b#a

maybe

Alias for maybeCase. Pattern matches on a Maybe value.

maybe 0 inc NONE              == 0
maybe 0 inc (SOME 5)          == 6
maybe b#none id (SOME b#a)    == b#a

fromSome

Extracts the value from a SOME, or returns a default for NONE.

fromSome 0 (SOME 5)        == 5
fromSome 0 NONE            == 0
fromSome b#a (SOME b#b)    == b#b

unpackSome

Extracts the value from a SOME, or crashes for NONE.

unpackSome (SOME 5)      == 5
unpackSome (SOME b#a)    == b#a
unpackSome NONE          ; crashes with "Unexpected NONE"

isSome

Checks if a Maybe value is SOME.

isSome (SOME 5)     == 1
isSome (SOME [])    == 1
isSome NONE         == 0

isNone

Checks if a Maybe value is NONE.

isNone NONE         == 1
isNone (SOME 5)     == 0
isNone (SOME [])    == 0

fmapMaybe

Applies a function to the value inside a SOME, or returns NONE.

fmapMaybe (SOME 5) inc                == (0 6)
fmapMaybe (SOME b#b) (barWeld b#a)    == (0 b#ab)
fmapMaybe NONE inc                    == NONE

maybeGuard

Returns NONE if the condition is false, otherwise returns the Maybe value.

maybeGuard TRUE (SOME 5)     == (0 5)
maybeGuard FALSE (SOME 5)    == NONE
maybeGuard TRUE NONE         == NONE

maybeGuardNot

Returns NONE if the condition is true, otherwise returns the Maybe value.

maybeGuardNot FALSE (SOME 5)    == (0 5)
maybeGuardNot TRUE (SOME 5)     == NONE
maybeGuardNot FALSE NONE        == NONE
PreviousEitherNextSets

Last updated 8 months ago