3178 shaares
  
  
251 private links
251 private links
        7 results
        
        
          
          tagged
          
              
                
                  design_patterns
                
              
          
        
        
        
      
    The objects of category theory are universal abstractions. Some of them, it turns out, coincide with known design patterns. The difference is, however, that category theory concepts are governed by specific laws. In order to be a functor, for example, an object must obey certain simple and intuitive laws. This makes the category theory concepts more specific, and less ambiguous, than design patterns.
The coming article series is an exploration of this space:
Monoids, semigroups, and friends
    Monoids
        Angular addition monoid
        Strings, lists, and sequences as a monoid
        Money monoid
        Convex hull monoid
        Tuple monoids
        Function monoids
        Endomorphism monoid
        Maybe monoids
        Lazy monoids
        Monoids accumulate
    Semigroups
        Bounding box semigroup
        Semigroups accumulate
    Quasigroups
    Magmas
        Rock Paper Scissors magma
        Colour-mixing magma
Functors, applicatives, and friends
    Functors
        The Maybe functor
        An Either functor
        A Tree functor
        A rose tree functor
        A Visitor functor
        Reactive functor
        The Identity functor
        The Lazy functor
        Asynchronous functors
        Set is not a functor
    Applicative functors
        Full deck
        An applicative password list
        Applicative combinations of functions
        The Maybe applicative functor
        Applicative validation
        The Test Data Generator applicative functor
        Danish CPR numbers in F#
        The Lazy applicative functor
        Applicative monoids
    Bifunctors
        Tuple bifunctor
        Either bifunctor
        Rose tree bifunctor
Software design isomorphisms
    Unit isomorphisms
    Function isomorphisms
    Argument list isomorphisms
    Uncurry isomorphisms
    Object isomorphisms
    Abstract class isomorphism
    Inheritance-composition isomorphism
    Tester-Doer isomorphisms
    Builder isomorphisms
Church encoding
    Church-encoded Boolean values
    Church-encoded natural numbers
    Church-encoded Maybe
    Church-encoded Either
    Church-encoded payment types
    Church-encoded rose tree
Catamorphisms
    Boolean catamorphism
    Peano catamorphism
    Maybe catamorphism
    List catamorphism
    Either catamorphism
    Tree catamorphism
    Rose tree catamorphism
    Full binary tree catamorphism
    Payment types catamorphism
Some design patterns as universal abstractions
    Composite as a monoid
        Coalescing Composite as a monoid
        Endomorphic Composite as a monoid
    Null Object as identity
    Builder as a monoid
    Visitor as a sum type
    Chain of Responsibility as catamorphisms