package Ġcov id . arrow . core Ċ Ċ import Ġarrow . core .* Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġ` sample ĠOption `() Ċ } Ċ Ċ fun Ġ` sample ĠOption `() Ġ{ ĊĠĠĠ Ġval Ġsome Ġ= ĠSome ( 1 ) ĊĠĠĠ Ġval Ġno pe Ġ= ĠNone ĊĠĠĠ Ġval Ġmaybe Ġ= ĠOption . from Nullable ( 2 ) ĊĊĠĠĠ Ġwhen Ġ( maybe ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠSome Ġ-> Ġmaybe . value ĊĠĠĠĠĠĠĠ Ġis ĠNone Ġ-> Ġmaybe . isEmpty () ĊĠĠĠ Ġ} ĊĠĠĠ Ġmaybe . fold ({ Ġprintln (" empty ") Ġ}, Ġ{ Ġprintln (" some : Ġ$ it ") Ġ}) ĊĊĠĠĠ Ġmaybe . getOrElse Ġ{ Ġ 3 Ġ} ĊĠĠĠ Ġprintln (" maybe Ġdouble d : Ġ${ maybe . map (:: double d ). orElse Ġ{ ĠSome ( 4 2 ) Ġ}} ") ĊĊĠĠĠ Ġval Ġnullable : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġval Ġnullable Result Ġ= Ġnullable ?. length Ġ?: Ġ- 1 ĊĊĠĠĠ Ġval Ġoption : ĠOption < String > Ġ= ĠNone ĊĠĠĠ Ġval Ġoption Result Ġ= Ġoption . map Ġ{ Ġit . length Ġ}. getOrElse Ġ{ Ġ- 1 Ġ} ĊĊĠĠĠ Ġval Ġmapper : Ġ( Option < String >) Ġ-> ĠOption < Int > Ġ= ĠOption . lift Ġ{ Ġit . toInt () Ġ} ĊĠĠĠ Ġval Ġmaybe Int : ĠOption < String > Ġ= ĠOption (" 1 ") ĊĠĠĠ Ġval Ġsure Int : ĠOption < Int > Ġ= Ġmapper ( maybe Int ) ĊĠĠĠ Ġprintln ( sure Int ) Ċ } Ċ Ċ fun Ġdouble d ( value : ĠInt ) Ġ= Ġvalue Ġ* Ġ 2 Ċ