Skip to content

iokasimov/observable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Make your actions to be observable and listen events from them, algebraically.

Let's imagine simple example: we want to listen to STDIN. We have getLine function that can capture a list of ASCII-symbols - all we need is to make this action to be observable.

obs :: Monad f => f a -> Observable f a r

Good, now we want to subscribe on events and set up callback, if we want to listen events forever, we need subscribe function:

subscribe :: Applicative f => Observable f a r -> (a -> f r) -> f r

First, we make action to be observable, then set up callback and at the end, subscribe on events:

subscribe (obs getLine) handler

Our handler will count amount of characters in strings and send this into STDOUT:

handler = print . (<>) "Length of string was: " . show . length

Let's try it out:

> hello, my dear friend!
> "Length of string was: 22"

About

Make your actions observable and listen events from them, algebraically.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published