Initial data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 72d218235f
commit f23f22d71c
199087 changed files with 3378941 additions and 0 deletions

View file

@ -0,0 +1,3 @@
print "knight"[1:] # strip first character
print "socks"[:-1] # strip last character
print "brooms"[1:-1] # strip both first and last characters

View file

@ -0,0 +1,55 @@
from functools import (reduce)
def main():
for xs in transpose(
(chunksOf(3)(
ap([tail, init, compose(init)(tail)])(
['knights', 'socks', 'brooms']
)
))
):
print(xs)
# GENERIC -------------------------------------------------
# tail :: [a] -> [a]
def tail(xs):
return xs[1:]
# init::[a] - > [a]
def init(xs):
return xs[:-1]
# ap (<*>) :: [(a -> b)] -> [a] -> [b]
def ap(fs):
return lambda xs: reduce(
lambda a, f: a + reduce(
lambda a, x: a + [f(x)], xs, []
), fs, []
)
# chunksOf :: Int -> [a] -> [[a]]
def chunksOf(n):
return lambda xs: reduce(
lambda a, i: a + [xs[i:n + i]],
range(0, len(xs), n), []
) if 0 < n else []
# compose (<<<) :: (b -> c) -> (a -> b) -> a -> c
def compose(g):
return lambda f: lambda x: g(f(x))
# transpose :: [[a]] -> [[a]]
def transpose(xs):
return list(map(list, zip(*xs)))
if __name__ == '__main__':
main()