Advertisement
Guest User

Church

a guest
Nov 30th, 2017
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.52 KB | None | 0 0
  1. ip = get_ipython()
  2. ip.display_formatter.formatters.keys()
  3. text_formatter = ip.display_formatter.formatters['text/plain']
  4.  
  5. pnum = lambda n: n(lambda x: x + 1)(0)
  6.  
  7. def _ppf(arg, p, cycle):
  8.     """
  9.    Pretty print a functions
  10.    """
  11.     if arg.__name__ == '<lambda>':
  12.         try:
  13.             i = pnum(arg)
  14.             if isinstance(i, int):
  15.                 arg.__name__ = '_{}'.format(i)
  16.         except:
  17.             pass
  18.        
  19.     p.text(arg.__name__)
  20.  
  21. text_formatter.for_type(type(lambda:1), _ppf);
  22.  
  23. I  = lambda a: a                             ; I.__name__  = 'Identity'
  24. K  = lambda a: lambda b: a                   ; K.__name__  = 'Kestral'
  25. KI = K(I)                                    ; KI.__name__ = 'Kite'
  26. B  = lambda f: lambda g: lambda a: f(g(a))   ; B.__name__  = 'Bluebird'
  27. M  = lambda f: f(f)                          ; M.__name__  = 'Mockingbird'
  28. Th = lambda f: lambda g: g(f)                ; Th.__name__ = 'Thrush'
  29. Y  = lambda f: f(M)(f(M))                    ; Y.__name__  = 'Y'
  30.  
  31. T   = lambda x: lambda y: x                  ; T.__name__ = 'T'
  32. F   = lambda x: lambda y: y                  ; F.__name__ = 'F'
  33. NOT = lambda x: x(F)(T)
  34. OR  = lambda x: lambda y: x(x)(y)
  35. AND = lambda x: lambda y: x(y)(x)
  36.  
  37. INC = lambda n: lambda f: B(f)(n(f))
  38. ADD = lambda n: n(INC)
  39. MUL = B
  40. POW = Th
  41.  
  42. _0  = lambda f: lambda a: a
  43. _1  = INC(_0)
  44. _2  = ADD(_1)(_1)
  45. _3  = INC(_2)
  46. _4  = ADD(_3)(_1)
  47. _5  = ADD(_3)(_2)
  48. _6  = MUL(_2)(_3)
  49. _7  = ADD(POW(_2)(_2))(_3)
  50. _8  = POW(_2)(_3)
  51. _9  = POW(_3)(_2)
  52. _10 = INC(_9)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement