- April 15th, 2016:

(\(intensf, list) -> map (second intensf) list) (insensifierFn, assocList)

Point-free-itize this lambda - obadz @obadzz uncurry $ map . second
- April 15th, 2016:

foldr (\card -> let c = color card in mappend c *** ((idx card, c):))

(mempty, []) cards

Point-free-itize and de-let lambda - Gautier DI FOLCO @gautier_difolco foldr (uncurry (***) . (uncurry fmap . fmap (((,) =<< mappend) . color) . ((,) =<< ((:) .) . (,) . idx))) (mempty, []) cards
- me: foldr (uncurry (***) . (mappend . snd &&& (:)) . (idx &&& color)) (mempty, [])
- April 15th, 2016: map (\(idx, color) -> C idx (cell bb idx) color) assoclist

point-free-itize the lambda in the map function. - Eyal Lotem @EyalL uncurry (C <*> cell bb) ?

Not in front of a type checker, can't check myself :) - April 13th, 2016:

point-free-itize lambda term in:

uncurry (foldr (\a -> min a *** max a)) . ((head &&& head) &&& id) - obadz @obadzz liftA2 (***) min max
- April 12th, 2016:

minmax :: Ord a => [a] -> (a, a)

minmax [1..9] = (1,9)

in linear time.

minmax = minimum &&& maximum

fails as it's 2x too slow. - April 12th, 2016:

You have (a,b) (c,d)

You need (a*c, b*d)

Well, we don't have all day! (Actually, we do) Get to it!

Pointless; I MEAN POINT-FREE pls - lotz@Haskell㌠ @lotz84_ ((uncurry . flip . curry $ id).) . ((uncurry.) . uncurry . (flip.) . flip . flip) ((((flip . (flip.)) $ ((,).) . (*)).) . (*))
- Olivier Iffrig @oiffrig Point-free but star-full: uncurry (***) . ((*) *** (*))
- bazzargh @bazzargh curry((uncurry (*)) *** (uncurry (*)))
- bazzargh @bazzargh knew there had to be a bimap answer, eventually got: curry ((bimap <$> id <*> id) (uncurry (*)))
- obadz @obadzz join biliftA2 (*)
- Андреев Кирилл @nonaem00 (((product *** product) . unzip) .) . (flip (:)) . (:[]) ... I clearly need more coffee this morning.
- April 10th, 2016:

data BBx = Bx (Int, Int) Pt2D Pt2D

define:

mkBB :: [a] -> Pt2D -> BBx

mkBB xs extents = Bx (0, length xs) (0,0) extents

points-free - Gautier DI FOLCO @gautier_difolco

-- LANGUAGE TupleSections

data BBx = Bx (Int, Int) Pt2D Pt2D

mkBB :: [a] -> Pt2D -> BBx

mkBB = flip Bx (0,0) . (0, ) . length - Thomas D @tthomasdd mkBB = flip Bx (0,0) . (,) 0 . length
- April 7th, 2016:

type MList a n = [(a, n)]

partSz :: Ord n => n -> MList a n -> (MList a n, MList a n)

partSz µ = partition ((µ >) . snd)

Define points-free - partSz = partition . (. snd) . (>) -- via @gautier_difolco

# Typed Logic

Incorporates strong typing over predicate logic programming, and, conversely, incorporates predicate logic programming into strongly typed functional languages. The style of predicate logic is from Prolog; the strongly typed functional language is Haskell.

## Thursday, May 5, 2016

### April 2016 1HaskellADay 1Liners

## Monday, May 2, 2016

### April 2016 1HaskellADay Problem and Solutions

###
**April 2016**

- April 29th, 2016: In today's #haskell problem we look at a set of Top5s markets data and define/quantify what looks 'interesting.' http://lpaste.net/8121634490738016256
- April 28th, 2016: Today's #haskell problem looks at 'solving' when a solution is not known a priori, and parallizing with antz http://lpaste.net/8170491646400528384
- April 27th, 2016: Today's #haskell problem has the antz foraging further afield (that is, in a much bigger matrix) http://lpaste.net/5667147688521498624 See what they find! Well, would you look at that! Today's #haskell solution sends more ants and gets a less costly result! Whoda thunk? http://lpaste.net/216918736328720384
- April 26th, 2016: SUPER SIZE ME! ... no, actually, just size me appropriately for today's #haskell problem http://lpaste.net/2187209441198211072

Solution has cluster nodes sized by cell-counts in each cluster: http://lpaste.net/5818908382240702464 - April 25th, 2016: The ants are Swarming! Today's #haskell problem the antz come marching one-by-one, hurrah! http://lpaste.net/4502369819319861248
Today's #haskell solution only took 153 antz to find the solution. YAY! Go, antz! Go! http://lpaste.net/7244247769668386816
- April 22nd, 2016: Today's #haskell problem is @projecteuler problem 81, also known as (for me:) the Kobayashi Maru http://lpaste.net/4178250065082580992 You give it a go. Totally NOT the solution to today's #haskell problem http://lpaste.net/8058369802856562688 ... unless you have more computational power than the Universe.
- April 21st, 2016: Today's #haskell problem asks: what's a pandigital prime? And which one is largest? http://lpaste.net/504585569821523968 via @projecteuler problem 41 And the largest Pandigital prime is (Just a). Yup, you heard it here first for today's #haskell solution http://lpaste.net/5597599669644427264
- April 20th, 2016: Today's #Haskell problem brings us back to Douglas Adams or projecteuler.net or both! with problem 42 http://lpaste.net/8181950129519984640 Words, words, and triangular words for today's #haskell solution http://lpaste.net/859266571875385344
- April 19th, 2016: In a shocking announcement, @geophf admits he's not a Haskell programmer for today's #haskell problem http://lpaste.net/7447463975479934976 oh, and R-Trie. From "PAPA" to "MAMMA" in Relational Trie and the 3-4-5 Trie tiers http://lpaste.net/259046704735584256 for today's #haskell solution.
- April 18th, 2016: For today's #haskell problem we look at the (reverse) Trie for efficient search of work suffixes http://lpaste.net/4221347562226974720 Assessment of the reverse trie for word suffix search: eh. http://lpaste.net/1782747088124116992
- April 15th, 2016: Today's #Haskell problem relates original data to scores on the data http://lpaste.net/5271793028346937344 We relate clustered cells to source data to allow further exploration in #haskell solution http://lpaste.net/6768261699876159488
- April 14th, 2016: We recolorize scorecards or we reintroduce meta-data into colored cells, either way, for today's #haskell problem http://lpaste.net/4184247669083865088 Today's #haskell solution gives us cells in the clusters enhanced with metadata http://lpaste.net/8455891905392148480
We expand the scope of the solution with big-indices and 3000 data points:

- April 13th, 2016: Today's #haskell problem tells us not to shun words ending with 'tion.' eheh. http://lpaste.net/8081525869924843520 We 'Trie' hard to get common prefixes for today's #haskell solution http://lpaste.net/5059758395683241984 Eheh: using Trie data structure to find prefixes
- April 12th, 2016: In today's #haskell problem we relate clustered data http://lpaste.net/9073884707980050432 We have a #dataviz of clustered data for today's #haskell solution http://lpaste.net/8982640331094753280 using a #graph #database
*All the stocks in their clusters**A query showing in which clusters AAPL, NFLX, and TWTR are* - April 11th, 2016: For today's #haskell problem we label then compact cells of heterogeneous data http://lpaste.net/6557878267389411328

Today's #Haskell solution gives us labeled, compacted data represented as SVG. http://lpaste.net/2873200763016839168 - April 8th, 2016: Today's #haskell problem LOOKS imposing, but it's really an Enum a reindexing problem; give it a go! http://lpaste.net/1555193256856256512 Today's #Haskell solution is 'fromEnum' http://lpaste.net/4814157348060790784 ... and this:
- April 7th, 2016: Today's #haskell problem returns to clusters, specifically 'clumping' (clustering) clusters http://lpaste.net/9172662547696844800 Today's #Haskell solution clumps clusters along mean-counts http://lpaste.net/4448502786170028032
- April 6th, 2016: You lookin' at Robert De Niro? Today's #Haskell problem: shoot him with Control.Arrow-syntax http://lpaste.net/6879084006575439872 Today's #Haskell solution ... with arrow syntax! http://lpaste.net/2056518229240578048
- April 5th, 2016: Today's #haskell problem is to create a symbol table compiler; wait, there's more: a symbol table compiler APP! http://lpaste.net/295071069348298752 So, today's #haskell solution wonders what happens if you're LOOKIN' at Rob't De Niro? ARE YOU LOOKIN' at HIM? http://lpaste.net/7366969987635871744
- April 4th, 2016: So, end of March we clustered some Market security data. Today's #haskell problem will query those clusters http://lpaste.net/5339634137026265088 So, in today's #haskell solution we learn $NFLX is in cluster 6 with 85 cells. http://lpaste.net/6805847212086525952 Hm. New clustering algorithm?
- April 1st, 2016: What if yesterday followed today? Today's #haskell problem: sorting unnormally-arrayed data, ... normalment oui. http://lpaste.net/3321894944162971648 We've 'resorted' to a better schema ... *groan* ... with today's #haskell solution http://lpaste.net/1909644297771155456

## Thursday, April 7, 2016

### March 2016 1HaskellADay 1Liners

**One-liners**

- March 29th, 2016: You have a list, Show a => [a], of known-length n, n > 100 Show the first three and the last three elements of that list
- March 28th, 2016: You have f :: c -> d and g :: a -> b -> c

define (<<-) such that f <<- g is f (g a b)

Does it exist already (in the Prelude, maybe)? - March 26th, 2016: insert1 :: Ord k => k -> a -> Map k [a] -> Map k [a] define, points-free, efficiently. (hint: it's not insertWith)
- March 26th, 2016: sqDist :: Fractional ä => [ä] -> [ä] -> ä sqDist v1 v2 = sum (zipWith (\a b -> (a - b) ^2) v1 v2) Point-free-itize sqDist (and λ)
- March 17th, 2016: for f :: (a -> b) -> (a, a) -> (b, b) define f
- obadz @obadzz f = join bimap
- March 17th, 2016: removeAll :: Eq a => a -> [a] -> [a]; define

e.g.: removeAll '"' "(\"S312\", \"S204\")" ~> "(S312, S204)" - obadz @obadzz removeAll = filter . (/=)
- Gautier DI FOLCO @gautier_difolco ... same
- March 17th, 2016:

f, g :: (String, String) -> String

let ab = ("a", "b")

f ab ~> "(\"a\", b)"

g ab ~> "(a, \"b\")"

define h that generalizes f and g - Gautier DI FOLCO @gautier_difolco

cp x y (a,b) = concat ["(", x a, ",", y b, ")"]

f,g :: (String, String) -> String

g = cp id show

f = cp show id

## Thursday, March 31, 2016

### March 2016 1HaskellADay Problems and Solutions

- March 31st, 2016: Today's #haskell problem is ♫ alone again, naturally 🎶 http://lpaste.net/7837739029373124608 ... but it likes it that way #introverproblems

- March 30th, 2016: Today's #haskell problem we look at what ... well: 'today' means in a #graph DaaS http://lpaste.net/2053260260323360768 The #haskell solution gets you 'today' as a complete packagehttp://lpaste.net/5049502168399216640
- March 29th, 2016: For today's #haskell problem we look to reify prior-trading-day knowledge as relations http://lpaste.net/677389378498068480 Enhanced inter-day #trading analytics in #haskell on a #graph DaaS http://lpaste.net/1926020591458975744 (... in 6 lines of code.)
- March 25th, 2016: For today's #haskell problem we take the score cards we've created from the #graph DaaS endpoint and cluster them http://lpaste.net/5690415111206862848 The #solution gives us K-means clustering of score cards! YAY! http://lpaste.net/3576182129349885952
- March 24th, 2016: For today's #haskell problem we load our gap analyses into ScoreCards http://lpaste.net/6485373940918124544 eventually for clustering using K-means. And today's #haskell solution we get ScoreCards from CSV file and from the #graph DaaS endpoint http://lpaste.net/1163865820011429888
- March 23rd, 2016: Sing with me: ♫ Fall into the Gap 🎶 ... report http://lpaste.net/3030808839961182208 for today's #haskell problem It took a 'little bit' of work but today's #haskell solution gives us a 'little bit' of meta-datahttp://lpaste.net/7280141726189092864
- March 22nd, 2016: For today's #haskell problem we convert the JSON graph result into haskell structures http://lpaste.net/4829558181661245440 LOLNEAT! Today's #haskell solution gives us a working dataset from a #graph DaaS endpoint http://lpaste.net/7874827506493161472 Now, let's git bizzy!
- March 21st, 2016: For this week's set of #haskell problems we're going to go against a #graph #database running on AWS! YIPPEE! http://lpaste.net/7339795115373756416 Okay, String returned from AWS DaaS #graph as today's #haskell solution http://lpaste.net/6813513488191717376 Tomorrow we'll look at parsing the JSON.
- March 16th, 2016: So, you've heard of this thing called a 'compiler,' right? For today's #haskell problem we're building a REcompiler! http://lpaste.net/8413387732209893376 Three #1Liner and an output file 1/3 the size later we have today's #haskell solution to the recompiler http://lpaste.net/4638823060617560064
- March 15th, 2016: For today's #Haskell problem we're warned to Beware the Ides of SymbolTables http://lpaste.net/6108657252669849600 ... but do we listen? Nooo! *stab-stab! So today's #haskell solution gives us a new static symbol-tablehttp://lpaste.net/4932809508989698048 That's great. The Show and Read definitions, though?
- March 14th, 2016: Today, we transform the superabundantly quoted mess@neo4j gives us as a CSV export into ... well: CSV http://lpaste.net/7793465205110865920 Okay, today's #haskell solution... did that, but we're missing some stock symbols http://lpaste.net/4928100283508064256 ... we'll look at that 'tomorrow.'
- March 11th, 2016: I hate the stodgy internet at work. Today's #haskell problem is to improve ScoreCard data type to use Ix-constrained values http://lpaste.net/4278240752024158208 And today's #haskell solution gives us indices for the Array-god http://lpaste.net/7322735479504240640
- March 9th, 2016: Today's #Haskell problem we're going to take it easy: just write a compiler, is all http://lpaste.net/5530458314216833024 😎 Today's #haskell solution: Compiler: get http://lpaste.net/7970896540401139712 I didn't ask for this in the problem statement, but I also gave a Read-instance for types extracted via SymbolTable.
- March 8th, 2016: For today's #haskell problem we are looking for securities with similar max-gaps in Markets top5s appearances http://lpaste.net/4656681160972173312 Today's #haskell solution was a stop-gap measure for $NFLX http://lpaste.net/233537231812296704 ... eheh.
- March 7th, 2016: Today's #Haskell problem we look for scatterings of Afr- I MEANT $NFLX! in a sparse data set http://lpaste.net/5892060591643688960 Today's #haskell solution shows stocks with like-appearances to $NFLX on the Markets top 5s http://lpaste.net/5252814791931592704
- March 4th, 2016: 'Wuz gunna' do SPARQL query dump analysis but what is the SPARQL query? URL-UN-encoding http://lpaste.net/268889253654560768 for today's #haskell problem Today's #haskell solution shows 'punkin' is 'bettah' than RDF. http://lpaste.net/5388171163006402560 Funny, that: the universal quantifier works, too.
- March 3rd, 2016: Now, for something completely different for today's #haskell problem, parsing XML document of the US States with HXThttp://lpaste.net/6918752874277109760 "Parsing XML is Easy!" says @geophf for today's #haskell solution http://lpaste.net/4360598558106189824 Yeah, but is parsing CSV easier? @geophf Yeah, but ...
- March 2nd, 2016: UN-JSON-ifying that JSON, baybee! is on the menu for today's #haskell problem http://lpaste.net/2940797818769506304 ('UN-JSON-ifying' is a word now) How many FromJSON instances was that? Dat iz one hella hint! in today's #haskell solution http://lpaste.net/7363580708683513856
- March 1st, 2016: Okay, it's not all tea and crumpets coding in #haskell. But I wish it were. Today's #haskell problem: http://lpaste.net/6471988009620209664 avoiding RDF. Today's #haskell solution showed me a fundamental truth: 1 HTTPS call is faster than 50 of them. http://lpaste.net/7390063266577252352

## Thursday, March 17, 2016

### February 2016: Haskell 1Liners

**One-liners**

- February 11th, 2015: rewrite

\n -> mapM f (replicate 10 n)

using replicateM instead

where f :: Monad m => Int -> m a- Gautier DI FOLCO @gautier_difolco replicateM 10 . f

## Monday, February 29, 2016

### February 2016 1HaskellADay Problems and Solutions

###
**February 2016**

- February 29th, 2016: For today's #LeapDay #haskell problem, @geophf asks for your (π) deets! courtesy of @OnThisDayinMath http://lpaste.net/8336236749340540928 Today's #haskell solution *Main> last10idx (take 1000000 π) ~> 999699 http://lpaste.net/6200187768866340864 @OnThisDayinMath
- February 26th, 2016: Doing some geo-plotting with #Wikidata for today's (coming up) #haskell problem http://lpaste.net/7869134501572509696 ... and we extracted State capitol lat/longs from #wikidata with this #haskell solution http://lpaste.net/2256342570529456128
- February 25th, 2016: A little bit of parsing wikidata from a US State/Capitol SPARQL query for today's #haskell problem http://lpaste.net/7506043738804715520 Got SPARQL-y, and today's #haskell solution gets you State capitol data ... in #haskell! (Did I mention #haskell?) http://lpaste.net/1147233748136230912
- February 24th, 2016: Yesterday we sliced, sliced, baby! For today's #haskell problem, we get all dicy wid it! http://lpaste.net/4683779741730209792 converting triples to acids You get a protein, and YOU get a protein, and EVERYBODY GETS A PROTEIN in today's #haskell solution http://lpaste.net/4088917949371383808
- February 23rd, 2016: Today's #Haskell problem has us singing "Splice, Splice, baby!" http://lpaste.net/4813324790125297664
- February 22nd, 2016: This week we'll look at gene sequencing. Today's #haskell problem we'll create a bi-directionally mapped CODON tablehttp://lpaste.net/5133590580013563904 And the #haskell solution tabled that CODONs! http://lpaste.net/6015179222207692800 improving the original along the way.
- February 19th, 2016: For today's #haskell problem, we deliver our customer the product: codes and, well: codes for their reports. YAY! http://lpaste.net/6281519086354563072 Annnnnnnnnddddd the file of TWENTY-ONE THOUSAND NINE HUNDRED CODES! http://lpaste.net/8746184321112473600
- February 17th, 2016: Today's #haskell problem gives ONE MILLION codes to the reports-god ... *ahem* I MEANT reports-GENERATOR! http://lpaste.net/4707338728270462976 ... And the solution:

Dr. Evil: ONE MILLION CODES!

Mr. NumberTwo: Sorry, sir, it's only 21900 codes.

http://lpaste.net/5798834052991549440

Dr. Evil: ... - February 16th, 2016: Today's #haskell problem has us parsing MORE! This time regional offices and business units http://lpaste.net/7840815037705879552 And we have our Regional offices and business unitshttp://lpaste.net/6948226477460553728 as a #graph and as a #haskell module
- February 15th, 2016: This week we'll be looking at accounting and generating reports! Because YAY! Today's #haskell problem: parsing foodhttp://lpaste.net/5434234717320773632 Foods: Parsed (but hopefully not eaten. YUCK!), Snark: captured, Chart: pie-d ... HUH?!?http://lpaste.net/2151340485682135040
- February 12th, 2016: Today's #Haskell problem generalizes random strings to sequences of enumerated values http://lpaste.net/2086566589242540032, specifically Gene sequences Today's #haskell solution surely gives us a lot of nucleotides to consider! http://lpaste.net/2201413576650915840
- February 11th, 2016: Writing random strings for today's #haskell problem http://lpaste.net/3636386820536664064 because that's every coder's dream-project. Today's #haskell solution does some stats on the generated random strings http://lpaste.net/652044497311498240
- February 10th, 2016: You generate a set of 'random' numbers. The next set is very similar ... let's fix that for today's #haskell problem http://lpaste.net/4512472853710372864 Today's #haskell solution made rnd more rnd, because reasons http://lpaste.net/6036010844385443840
- February 9th, 2016: We learn the past tense of the verb 'to see' is 'See(d),' 'saw(ed),' or 'sowed' http://lpaste.net/4776920810533158912 and we generate some random numbers. ICYMI that was the announcement for today's #haskell problem: it's a Big Generator. Yes. It is. (*groan Okay, I'll stop) (NEVER!)

The #haskell solution has us

shiftR to the Right ...

movin' to the Left ...

we are the voices of the

Big Generator! http://lpaste.net/879893392832593920 - February 8th, 2016: Creating a random seed from POSIX time for today's #haskell problem http://lpaste.net/2781359140864262144 En-split-ified POSIX time http://lpaste.net/8844075898622705664
- February 5th, 2016: We tackle an Amino Acid CODON table for today's #haskell problem http://lpaste.net/6606149825735950336 suggested by a GATTACA-tweet by @randal_olson The Amino Acid table as a #graph #haskell-solution http://lpaste.net/9122099753146908672

- February 4th, 2016: Today's #haskell problem has us create the cal (not Ripken) app http://lpaste.net/846188289084882944 Today's #haskell solution has us Rikpenin' dat Cal! http://lpaste.net/8386114973348134912
- February 3rd, 2016: The Days of Our Lives (or at least of the year) for today's #haskell problem http://lpaste.net/6997792822417948672 These were the best days of our lives! / Back in the Summer of '69! http://lpaste.net/6823202028173393920
- February 2nd, 2016: Dates and Days for today's #haskell problem http://lpaste.net/1501657254015795200 Date nuts and Grape nuts! ... no ... wait. http://lpaste.net/3546538887843151872
- February 1st, 2016: Happy February, everyone! Today's #haskell problem: arrows, monads, comonads! http://lpaste.net/3387588436050313216

## Thursday, February 11, 2016

### January 2016 Haskell One-liners

- January 26th, 2016: define line2Bio so that

*Main> line2Bio "Birches by Robert Frost" ~> ("Birches","Robert Frost")

(in 1 line) - Gautier DI FOLCO @gautier_difolco

import Data.Bifunctor

line2Bio = bimap unwords (unwords . tail) . break (== "by") . words - matthieu bulté @matthieubulte

line2Bio = on bimap (unwords .) id tail . break (== "by") . words - January 26th, 2016: define swap points-free:

swap :: (a,b) -> (b, a) - matthieu bulté @matthieubulte

swap = uncurry (flip (,)) - Noah Luck Easterly @walkstherain

uncurry $ flip (,) - Андреев Кирилл @nonaem00

import Control.Arrow

swap = snd &&& fst

Subscribe to:
Posts (Atom)