Scrapbook-0.4.0: code examples
Copyright© Frank Jung 2020
LicenseGPL-3
Safe HaskellSafe-Inferred
LanguageHaskell2010

SubSeqs

Description

This is a collection of different ways (with different performance) to create subsquences.

Examples

subSeqs1 "abc" should be ["a","ab","abc","ac","b","bc","c"]
subSeqs2 "abc" should be ["a","ab","abc","ac","b","bc","c"]
subSeqs3 "abc" should be ["abc","ab","ac","a","bc","b","c",""]
subSeqs4 "abc" should be ["abc","ab","ac","a","bc","b","c",""]
Synopsis

Documentation

subSeqs1 :: [a] -> [[a]] Source #

From Pearls of Functional Algorithm Design.

subSeqs2 :: [a] -> [[a]] Source #

Alternative definition using just foldr and map. For non-empty lists only.

subSeqs3 :: [a] -> [[a]] Source #

Using list comprehension.

subSeqs4 :: [a] -> [[a]] Source #

Create a power-set using Monad.

This blog explains filterM.