fork(1) download
  1. --[[
  2. fn x => fn y => fn z => if x then y else z
  3. --]]
  4. function _styx_builtin_if(c)
  5. return function(t)
  6. return function(f)
  7. if c then
  8. return t()
  9. else
  10. return f()
  11. end
  12. end
  13. end
  14. end
  15. f8 = {
  16. __call = function(self, p)
  17. local v1 = self['c1']
  18. local v2 = self['c2']
  19. local v3 = self['c3']
  20. local v6 = p
  21. return v2
  22. end
  23. }
  24. f23 = {
  25. __call = function(self, p)
  26. local v1 = p
  27. local v21 = {
  28. c1 = v1,
  29. }
  30. setmetatable(v21, f20)
  31. return v21
  32. end
  33. }
  34. f17 = {
  35. __call = function(self, p)
  36. local v1 = self['c1']
  37. local v2 = self['c2']
  38. local v3 = p
  39. local v4 = _styx_builtin_if
  40. local v5 = v4(v1)
  41. local v9 = {
  42. c1 = v1,
  43. c2 = v2,
  44. c3 = v3,
  45. }
  46. setmetatable(v9, f8)
  47. local v10 = v5(v9)
  48. local v14 = {
  49. c1 = v1,
  50. c2 = v2,
  51. c3 = v3,
  52. }
  53. setmetatable(v14, f13)
  54. local v15 = v10(v14)
  55. return v15
  56. end
  57. }
  58. f13 = {
  59. __call = function(self, p)
  60. local v1 = self['c1']
  61. local v2 = self['c2']
  62. local v3 = self['c3']
  63. local v11 = p
  64. return v3
  65. end
  66. }
  67. f20 = {
  68. __call = function(self, p)
  69. local v1 = self['c1']
  70. local v2 = p
  71. local v18 = {
  72. c1 = v1,
  73. c2 = v2,
  74. }
  75. setmetatable(v18, f17)
  76. return v18
  77. end
  78. }
  79.  
  80. local main = {}
  81. setmetatable(main, f23)
  82.  
  83. print(main(true)(1)(2))
  84. print(main(false)(1)(2))
Success #stdin #stdout 0.02s 2496KB
stdin
Standard input is empty
stdout
1
2