Cody

# Problem 43650. Church Encoding

Solution 1571592

Submitted on 29 Jun 2018
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   Fail
incr = @(a)a+1 c = church(0) assert(isequal(c(incr,100),100))

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

Output argument "ans" (and maybe others) not assigned during call to "church/applyFun". Error in church>@(f,x)applyFun(f,x,n) (line 3) y = @(f,x) applyFun(f, x, n) Error in Test1 (line 3) assert(isequal(c(incr,100),100))

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

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

Output argument "ans" (and maybe others) not assigned during call to "church/applyFun". Error in church>@(f,x)applyFun(f,x,n) (line 3) y = @(f,x) applyFun(f, x, n) Error in Test2 (line 3) assert(isequal(c(incr,0),3))

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

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

Output argument "ans" (and maybe others) not assigned during call to "church/applyFun". Error in church>@(f,x)applyFun(f,x,n) (line 3) y = @(f,x) applyFun(f, x, n) Error in Test3 (line 3) assert(isequal(c(twice,1),32))

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

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

Output argument "ans" (and maybe others) not assigned during call to "church/applyFun". Error in church>@(f,x)applyFun(f,x,n) (line 3) y = @(f,x) applyFun(f, x, n) Error in Test4 (line 3) assert(isequal(c(incr,10),20))

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

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

Output argument "ans" (and maybe others) not assigned during call to "church/applyFun". Error in church>@(f,x)applyFun(f,x,n) (line 3) y = @(f,x) applyFun(f, x, n) Error in Test5 (line 3) assert(isequal(c(twice,3),3072))