Skip to content

Instantly share code, notes, and snippets.

@timyates
Created March 6, 2013 14:16

Revisions

  1. timyates revised this gist Mar 6, 2013. 1 changed file with 3 additions and 2 deletions.
    5 changes: 3 additions & 2 deletions fact.groovy
    Original file line number Diff line number Diff line change
    @@ -5,9 +5,10 @@ fact_improver = { partial ->
    }

    y = { improver ->
    { gen -> { BigInteger n -> improver( gen( gen ) )( n ) } } { gen -> { BigInteger n -> improver( gen( gen ) )( n ) } }
    { gen -> { BigInteger n -> improver( gen( gen ) )( n ) } } { gen ->
    { BigInteger n -> improver( gen( gen ) )( n ) } }
    }

    fx = y( fact_improver )

    println fx( 5 )
    fx( 5 )
  2. timyates created this gist Mar 6, 2013.
    13 changes: 13 additions & 0 deletions fact.groovy
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,13 @@
    fact_improver = { partial ->
    { BigInteger n ->
    n == 0 ? 1 : n * partial( n - 1 )
    }
    }

    y = { improver ->
    { gen -> { BigInteger n -> improver( gen( gen ) )( n ) } } { gen -> { BigInteger n -> improver( gen( gen ) )( n ) } }
    }

    fx = y( fact_improver )

    println fx( 5 )