module Main where import Prelude (Bool(..),Num(..),Integer) showBool f = f True False showNum n = n (+1) 0 true = \x -> \y -> x false = \x -> \y -> y num 0 = \f -> \x -> x num n = \f -> \x -> f (num (n-1) f x) {- Pod tyto řádky můžete vkládat vlastní definice. Jako příklady jsou zde některé ze cvičení; zápis v podstatě odpovídá matematickému, jen místo „λ“ se používá „\“ a místo „.“ je „->“. -} and = \a -> \b -> a b false succ = \n -> \f -> \x -> f (n f x) plus = \n -> \m -> \f -> \x -> n f (m f x) plus2 = \n -> \m -> n succ m