Yaaf.FSharp.Helper


Reader

Defined in Yaaf.FSharp.Helper.dll.

Nested types and modules

TypeDescription
Reader<'R, 'T>
ReaderBuilder

The reader monad. This monad comes from Matthew Podwysocki's http://codebetter.com/blogs/matthew.podwysocki/archive/2010/01/07/much-ado-about-monads-reader-edition.aspx.

Functions and values

Function or valueDescription
( *> ) x y
Signature: x:Reader<'?21046,'?21047> -> y:Reader<'?21046,'?21048> -> Reader<'?21046,'?21048>
Type parameters: '?21046, '?21047, '?21048

Sequence actions, discarding the value of the first argument.

( <!> ) f m
Signature: f:('?21037 -> '?21038) -> m:Reader<'?21039,'?21037> -> Reader<'?21039,'?21038>
Type parameters: '?21037, '?21038, '?21039

Infix map

( <* ) x y
Signature: x:Reader<'?21050,'?21051> -> y:Reader<'?21050,'?21052> -> Reader<'?21050,'?21051>
Type parameters: '?21050, '?21051, '?21052

Sequence actions, discarding the value of the second argument.

( <*> ) f m
Signature: f:Reader<'?21025,('?21026 -> '?21027)> -> m:Reader<'?21025,'?21026> -> Reader<'?21025,'?21027>
Type parameters: '?21025, '?21026, '?21027

Sequential application

( <=< ) x
Signature: x:('?21063 -> Reader<'?21064,'?21065>) -> ('?21066 -> Reader<'?21064,'?21063>) -> '?21066 -> Reader<'?21064,'?21065>
Type parameters: '?21063, '?21064, '?21065, '?21066

Right-to-left Kleisli composition

( =<< ) f m
Signature: f:('?21021 -> Reader<'?21022,'?21023>) -> m:Reader<'?21022,'?21021> -> Reader<'?21022,'?21023>
Type parameters: '?21021, '?21022, '?21023

Flipped >>=

( >=> ) f g x
Signature: f:('?21058 -> Reader<'?21059,'?21060>) -> g:('?21060 -> Reader<'?21059,'?21061>) -> x:'?21058 -> Reader<'?21059,'?21061>
Type parameters: '?21058, '?21059, '?21060, '?21061

Left-to-right Kleisli composition

( >>. ) m f
Signature: m:Reader<'?21054,'?21055> -> f:Reader<'?21054,'?21056> -> Reader<'?21054,'?21056>
Type parameters: '?21054, '?21055, '?21056

Sequentially compose two reader actions, discarding any value produced by the first

( >>= ) m f
Signature: m:Reader<'?21017,'?21018> -> f:('?21018 -> Reader<'?21017,'?21019>) -> Reader<'?21017,'?21019>
Type parameters: '?21017, '?21018, '?21019

Sequentially compose two actions, passing any value produced by the first as an argument to the second.

ap m f
Signature: m:Reader<'?21029,'?21030> -> f:Reader<'?21029,('?21030 -> '?21031)> -> Reader<'?21029,'?21031>
Type parameters: '?21029, '?21030, '?21031

Sequential application

ask
Signature: Reader<'R,'R>
Type parameters: 'R
asks f
Signature: f:('?21007 -> '?21008) -> Reader<'?21007,'?21008>
Type parameters: '?21007, '?21008
bind k m r
Signature: k:('?20966 -> '?20967 -> '?20968) -> m:('?20967 -> '?20966) -> r:'?20967 -> '?20968
Type parameters: '?20966, '?20967, '?20968
foldM f s
Signature: f:('?21068 -> '?21069 -> Reader<'?21070,'?21068>) -> s:'?21068 -> seq<'?21069> -> Reader<'?21070,'?21068>
Type parameters: '?21068, '?21069, '?21070
lift2 f a b
Signature: f:('?21041 -> '?21042 -> '?21043) -> a:Reader<'?21044,'?21041> -> b:Reader<'?21044,'?21042> -> Reader<'?21044,'?21043>
Type parameters: '?21041, '?21042, '?21043, '?21044

Promote a function to a monad/applicative, scanning the monadic/applicative arguments from left to right.

local f m
Signature: f:('r1 -> 'r2) -> m:Reader<'r2,'T> -> Reader<'r1,'T>
Type parameters: 'r1, 'r2, 'T
map f m
Signature: f:('?21033 -> '?21034) -> m:Reader<'?21035,'?21033> -> Reader<'?21035,'?21034>
Type parameters: '?21033, '?21034, '?21035

Transforms a Reader value by using a specified mapping function.

mapM f x
Signature: f:('?21075 -> Reader<'?21076,'?21077>) -> x:'?21075 list -> Reader<'?21076,'?21077 list>
Type parameters: '?21075, '?21076, '?21077
reader
Signature: ReaderBuilder
returnM x
Signature: x:'?21014 -> Reader<'?21015,'?21014>
Type parameters: '?21014, '?21015

Inject a value into the Reader type

sequence s
Signature: s:Reader<'?21072,'?21073> list -> Reader<'?21072,'?21073 list>
Type parameters: '?21072, '?21073
Fork me on GitHub