fork download
  1. --[[
  2. fn _ =>
  3.   let id = fn x => x in
  4.   let const = fn x => fn _ => x in
  5.   let operator>> = fn f => fn g => fn x => g (f x) in
  6.   (id >> const >> id) 42 12
  7. --]]
  8. function _styx_builtin_if(c)
  9. return function(t)
  10. return function(f)
  11. if c then
  12. return t()
  13. else
  14. return f()
  15. end
  16. end
  17. end
  18. end
  19. f32 = {
  20. __call = function(self, p)
  21. local v1 = self['c1']
  22. local v2 = self['c2']
  23. local v3 = p
  24. local v15 = {
  25. c1 = v1,
  26. c2 = v2,
  27. c3 = v3,
  28. }
  29. setmetatable(v15, f14)
  30. local v29 = {
  31. c1 = v1,
  32. c2 = v2,
  33. c3 = v3,
  34. }
  35. setmetatable(v29, f28)
  36. local v30 = v15(v29)
  37. return v30
  38. end
  39. }
  40. f37 = {
  41. __call = function(self, p)
  42. local v1 = self['c1']
  43. local v2 = self['c2']
  44. local v34 = self['c34']
  45. local v35 = p
  46. return v34
  47. end
  48. }
  49. f40 = {
  50. __call = function(self, p)
  51. local v1 = self['c1']
  52. local v2 = self['c2']
  53. local v34 = p
  54. local v38 = {
  55. c1 = v1,
  56. c2 = v2,
  57. c34 = v34,
  58. }
  59. setmetatable(v38, f37)
  60. return v38
  61. end
  62. }
  63. f25 = {
  64. __call = function(self, p)
  65. local v1 = self['c1']
  66. local v2 = self['c2']
  67. local v3 = self['c3']
  68. local v16 = self['c16']
  69. local v17 = p
  70. local v23 = {
  71. c16 = v16,
  72. c2 = v2,
  73. c3 = v3,
  74. c17 = v17,
  75. c1 = v1,
  76. }
  77. setmetatable(v23, f22)
  78. return v23
  79. end
  80. }
  81. f14 = {
  82. __call = function(self, p)
  83. local v1 = self['c1']
  84. local v2 = self['c2']
  85. local v3 = self['c3']
  86. local v4 = p
  87. local v5 = v4(v2)
  88. local v6 = v5(v3)
  89. local v7 = v4(v6)
  90. local v8 = v7(v2)
  91. local v9 = 42
  92. local v10 = v8(v9)
  93. local v11 = 12
  94. local v12 = v10(v11)
  95. return v12
  96. end
  97. }
  98. f22 = {
  99. __call = function(self, p)
  100. local v16 = self['c16']
  101. local v2 = self['c2']
  102. local v3 = self['c3']
  103. local v17 = self['c17']
  104. local v1 = self['c1']
  105. local v18 = p
  106. local v19 = v16(v18)
  107. local v20 = v17(v19)
  108. return v20
  109. end
  110. }
  111. f28 = {
  112. __call = function(self, p)
  113. local v1 = self['c1']
  114. local v2 = self['c2']
  115. local v3 = self['c3']
  116. local v16 = p
  117. local v26 = {
  118. c1 = v1,
  119. c2 = v2,
  120. c3 = v3,
  121. c16 = v16,
  122. }
  123. setmetatable(v26, f25)
  124. return v26
  125. end
  126. }
  127. f52 = {
  128. __call = function(self, p)
  129. local v1 = p
  130. local v45 = {
  131. c1 = v1,
  132. }
  133. setmetatable(v45, f44)
  134. local v49 = {
  135. c1 = v1,
  136. }
  137. setmetatable(v49, f48)
  138. local v50 = v45(v49)
  139. return v50
  140. end
  141. }
  142. f48 = {
  143. __call = function(self, p)
  144. local v1 = self['c1']
  145. local v46 = p
  146. return v46
  147. end
  148. }
  149. f44 = {
  150. __call = function(self, p)
  151. local v1 = self['c1']
  152. local v2 = p
  153. local v33 = {
  154. c1 = v1,
  155. c2 = v2,
  156. }
  157. setmetatable(v33, f32)
  158. local v41 = {
  159. c1 = v1,
  160. c2 = v2,
  161. }
  162. setmetatable(v41, f40)
  163. local v42 = v33(v41)
  164. return v42
  165. end
  166. }
  167.  
  168. local main = {}
  169. setmetatable(main, f52)
  170.  
  171. print(main(nil))
Success #stdin #stdout 0.02s 2540KB
stdin
Standard input is empty
stdout
42