Cody

# Problem 43650. Church Encoding

Solution 1049146

Submitted on 9 Nov 2016 by Peng Liu
• Size: 21
• This is the leading solution.
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

### Test Suite

Test Status Code Input and Output
1   Pass
incr = @(a)a+1 c = church(0) assert(isequal(c(incr,100),100))

incr = function_handle with value: @(a)a+1 c = function_handle with value: @(f,x)x

2   Pass
incr = @(a)a+1 c = church(3) assert(isequal(c(incr,0),3))

incr = function_handle with value: @(a)a+1 c = function_handle with value: @(f,x)f(f(f(x)))

3   Pass
twice = @(a)a*2 c = church(5) assert(isequal(c(twice,1),32))

twice = function_handle with value: @(a)a*2 c = function_handle with value: @(f,x)f(f(f(f(f(x)))))

4   Pass
incr = @(a)a+1 c = church(10) assert(isequal(c(incr,10),20))

incr = function_handle with value: @(a)a+1 c = function_handle with value: @(f,x)f(f(f(f(f(f(f(f(f(f(x))))))))))

5   Pass
twice = @(a)a*2 c = church(10) assert(isequal(c(twice,3),3072))

twice = function_handle with value: @(a)a*2 c = function_handle with value: @(f,x)f(f(f(f(f(f(f(f(f(f(x))))))))))