Copyright | (c) Owen Bechtel 2023 |
---|---|
License | MIT |
Maintainer | ombspring@gmail.com |
Stability | experimental |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
A standard library for Jaskell. The names of most functions in this module come from the Joy programming language (see here for a list of Joy commands).
Synopsis
- stack :: Arrow arr => arr s (s, s)
- unstack :: Arrow arr => arr (s, t) t
- newstack :: Arrow arr => arr a ()
- pop :: Arrow arr => arr (s, a) s
- dup :: Arrow arr => arr (s, a) ((s, a), a)
- swap :: Arrow arr => arr ((s, a), b) ((s, b), a)
- popd :: Arrow arr => arr ((s, a), b) (s, b)
- pop2 :: Arrow arr => arr ((s, a), b) s
- dupd :: Arrow arr => arr ((s, a), b) (((s, a), a), b)
- dup2 :: Arrow arr => arr ((s, a), b) ((((s, a), b), a), b)
- swapd :: Arrow arr => arr (((s, a), b), c) (((s, b), a), c)
- rollup :: Arrow arr => arr (((s, a), b), c) (((s, c), a), b)
- rolldown :: Arrow arr => arr (((s, a), b), c) (((s, b), c), a)
- choice :: Arrow arr => arr (((s, Bool), a), a) (s, a)
- select :: (Arrow arr, Eq a) => arr (((s, a), [(a, b)]), b) (s, b)
- pair :: Arrow arr => arr ((s, a), b) (s, (a, b))
- unpair :: Arrow arr => arr (s, (a, b)) ((s, a), b)
- cons :: Arrow arr => arr ((s, a), [a]) (s, [a])
- swons :: Arrow arr => arr ((s, [a]), a) (s, [a])
- uncons :: Arrow arr => arr (s, [a]) ((s, a), [a])
- unswons :: Arrow arr => arr (s, [a]) ((s, [a]), a)
- conjoin :: (Arrow arr, Arrow arr') => arr ((s, arr' t (u1, Bool)), arr' t (u2, Bool)) (s, arr' t (t, Bool))
- disjoin :: (Arrow arr, Arrow arr') => arr ((s, arr' t (u1, Bool)), arr' t (u2, Bool)) (s, arr' t (t, Bool))
- i :: ArrowApply arr => arr (s, arr s t) t
- comp :: (Arrow arr, Arrow arr') => arr ((s, arr' a b), arr' b c) (s, arr' a c)
- consQ :: (Arrow arr, Arrow arr') => arr ((s, a), arr' (t, a) c) (s, arr' t c)
- swonsQ :: (Arrow arr, Arrow arr') => arr ((s, arr' (t, a) c), a) (s, arr' t c)
- nullary :: ArrowApply arr => arr (s, arr s (t, a)) (s, a)
- dip :: ArrowApply arr => arr ((s, a), arr s t) (t, a)
- dipd :: ArrowApply arr => arr (((s, a), b), arr s t) ((t, a), b)
- dipdd :: ArrowApply arr => arr ((((s, a), b), c), arr s t) (((t, a), b), c)
- app1 :: ArrowApply arr => arr ((s, a), arr (s, a) (t, b)) (s, b)
- app2 :: ArrowApply arr => arr (((s, a), a), arr (s, a) (t, b)) ((s, b), b)
- app3 :: ArrowApply arr => arr ((((s, a), a), a), arr (s, a) (t, b)) (((s, b), b), b)
- cleave :: ArrowApply arr => arr (((s, a), arr (s, a) (t1, b1)), arr (s, a) (t2, b2)) ((s, b1), b2)
- ifte :: ArrowApply arr => arr (((s, arr s (t, Bool)), arr s u), arr s u) u
- branch :: ArrowApply arr => arr (((s, Bool), arr s t), arr s t) t
- cond :: (ArrowApply arr, ArrowChoice arr) => arr ((s, [(arr s (t, Bool), arr s u)]), arr s u) u
- infra :: ArrowApply arr => arr ((s, t), arr t u) (s, u)
- whiledo :: (ArrowApply arr, ArrowChoice arr) => arr ((s, arr s (t, Bool)), arr s s) s
- tailrec :: (ArrowApply arr, ArrowChoice arr) => arr (((s, arr s (t, Bool)), arr s u), arr s s) u
- linrec :: (ArrowApply arr, ArrowChoice arr) => arr ((((s, arr s (t, Bool)), arr s u), arr s s), arr u u) u
- linrec' :: (ArrowApply arr, ArrowChoice arr) => arr ((((s, arr s (t, Bool)), arr s u), arr s (s, c)), arr (u, c) u) u
- binrec :: (ArrowApply arr, ArrowChoice arr) => arr (((((s, a), arr (s, a) (t, Bool)), arr (s, a) (u, b)), arr (s, a) ((s, a), a)), arr ((s, b), b) (u, b)) (u, b)
- binrec' :: (ArrowApply arr, ArrowChoice arr) => arr (((((s, a), arr (s, a) (t, Bool)), arr (s, a) (u, b)), arr (s, a) (((s, a), a), c)), arr (((s, b), b), c) (u, b)) (u, b)
- natrec :: (ArrowApply arr, ArrowChoice arr) => arr (((s, Int), arr s (t, b)), arr ((s, Int), b) (t, b)) (t, b)
- listrec :: (ArrowApply arr, ArrowChoice arr) => arr (((s, [a]), arr s (t, b)), arr ((s, a), b) (t, b)) (t, b)
- data CLROption arr s u
- condlinrec :: (ArrowApply arr, ArrowChoice arr) => arr ((s, [(arr s (t, Bool), CLROption arr s u)]), CLROption arr s u) u
- times :: (ArrowApply arr, ArrowChoice arr) => arr ((s, Int), arr s s) s
- step :: (ArrowApply arr, ArrowChoice arr) => arr ((s, [a]), arr (s, a) s) s
- step2 :: (ArrowApply arr, ArrowChoice arr) => arr (((s, [a]), [b]), arr ((s, a), b) s) s
- map :: Arrow arr => arr ((s, [a]), (s, a) -> (t, b)) (s, [b])
- mapS :: (ArrowApply arr, ArrowChoice arr) => arr ((s, [a]), arr (s, a) (s, b)) (s, [b])
- filter :: Arrow arr => arr ((s, [a]), (s, a) -> (t, Bool)) (s, [a])
- filterS :: (ArrowApply arr, ArrowChoice arr) => arr ((s, [a]), arr (s, a) (s, Bool)) (s, [a])
- split :: Arrow arr => arr ((s, [a]), (s, a) -> (t, Bool)) ((s, [a]), [a])
- splitS :: (ArrowApply arr, ArrowChoice arr) => arr ((s, [a]), arr (s, a) (s, Bool)) ((s, [a]), [a])
- any :: (ArrowApply arr, ArrowChoice arr) => arr ((s, [a]), arr (s, a) (t, Bool)) (s, Bool)
- all :: (ArrowApply arr, ArrowChoice arr) => arr ((s, [a]), arr (s, a) (t, Bool)) (s, Bool)
- zipwith :: Arrow arr => arr (((s, [a]), [b]), ((s, a), b) -> (t, c)) (s, [c])
- zipwithS :: (ArrowApply arr, ArrowChoice arr) => arr (((s, [a]), [b]), arr ((s, a), b) (s, c)) (s, [c])
Stack manipulation
Ternary operator
Tuples and lists
Basic combinators
conjoin :: (Arrow arr, Arrow arr') => arr ((s, arr' t (u1, Bool)), arr' t (u2, Bool)) (s, arr' t (t, Bool)) Source #
disjoin :: (Arrow arr, Arrow arr') => arr ((s, arr' t (u1, Bool)), arr' t (u2, Bool)) (s, arr' t (t, Bool)) Source #
i :: ArrowApply arr => arr (s, arr s t) t Source #
nullary :: ArrowApply arr => arr (s, arr s (t, a)) (s, a) Source #
dip :: ArrowApply arr => arr ((s, a), arr s t) (t, a) Source #
dipd :: ArrowApply arr => arr (((s, a), b), arr s t) ((t, a), b) Source #
dipdd :: ArrowApply arr => arr ((((s, a), b), c), arr s t) (((t, a), b), c) Source #
app1 :: ArrowApply arr => arr ((s, a), arr (s, a) (t, b)) (s, b) Source #
app2 :: ArrowApply arr => arr (((s, a), a), arr (s, a) (t, b)) ((s, b), b) Source #
app3 :: ArrowApply arr => arr ((((s, a), a), a), arr (s, a) (t, b)) (((s, b), b), b) Source #
cleave :: ArrowApply arr => arr (((s, a), arr (s, a) (t1, b1)), arr (s, a) (t2, b2)) ((s, b1), b2) Source #
ifte :: ArrowApply arr => arr (((s, arr s (t, Bool)), arr s u), arr s u) u Source #
branch :: ArrowApply arr => arr (((s, Bool), arr s t), arr s t) t Source #
cond :: (ArrowApply arr, ArrowChoice arr) => arr ((s, [(arr s (t, Bool), arr s u)]), arr s u) u Source #
infra :: ArrowApply arr => arr ((s, t), arr t u) (s, u) Source #
Recursive combinators
whiledo :: (ArrowApply arr, ArrowChoice arr) => arr ((s, arr s (t, Bool)), arr s s) s Source #
tailrec :: (ArrowApply arr, ArrowChoice arr) => arr (((s, arr s (t, Bool)), arr s u), arr s s) u Source #
linrec :: (ArrowApply arr, ArrowChoice arr) => arr ((((s, arr s (t, Bool)), arr s u), arr s s), arr u u) u Source #
linrec' :: (ArrowApply arr, ArrowChoice arr) => arr ((((s, arr s (t, Bool)), arr s u), arr s (s, c)), arr (u, c) u) u Source #
binrec :: (ArrowApply arr, ArrowChoice arr) => arr (((((s, a), arr (s, a) (t, Bool)), arr (s, a) (u, b)), arr (s, a) ((s, a), a)), arr ((s, b), b) (u, b)) (u, b) Source #
binrec' :: (ArrowApply arr, ArrowChoice arr) => arr (((((s, a), arr (s, a) (t, Bool)), arr (s, a) (u, b)), arr (s, a) (((s, a), a), c)), arr (((s, b), b), c) (u, b)) (u, b) Source #
natrec :: (ArrowApply arr, ArrowChoice arr) => arr (((s, Int), arr s (t, b)), arr ((s, Int), b) (t, b)) (t, b) Source #
listrec :: (ArrowApply arr, ArrowChoice arr) => arr (((s, [a]), arr s (t, b)), arr ((s, a), b) (t, b)) (t, b) Source #
condlinrec :: (ArrowApply arr, ArrowChoice arr) => arr ((s, [(arr s (t, Bool), CLROption arr s u)]), CLROption arr s u) u Source #
times :: (ArrowApply arr, ArrowChoice arr) => arr ((s, Int), arr s s) s Source #
List combinators
step :: (ArrowApply arr, ArrowChoice arr) => arr ((s, [a]), arr (s, a) s) s Source #
step2 :: (ArrowApply arr, ArrowChoice arr) => arr (((s, [a]), [b]), arr ((s, a), b) s) s Source #
mapS :: (ArrowApply arr, ArrowChoice arr) => arr ((s, [a]), arr (s, a) (s, b)) (s, [b]) Source #
filterS :: (ArrowApply arr, ArrowChoice arr) => arr ((s, [a]), arr (s, a) (s, Bool)) (s, [a]) Source #
splitS :: (ArrowApply arr, ArrowChoice arr) => arr ((s, [a]), arr (s, a) (s, Bool)) ((s, [a]), [a]) Source #
any :: (ArrowApply arr, ArrowChoice arr) => arr ((s, [a]), arr (s, a) (t, Bool)) (s, Bool) Source #
all :: (ArrowApply arr, ArrowChoice arr) => arr ((s, [a]), arr (s, a) (t, Bool)) (s, Bool) Source #
zipwithS :: (ArrowApply arr, ArrowChoice arr) => arr (((s, [a]), [b]), arr ((s, a), b) (s, c)) (s, [c]) Source #