fork download
  1. # Fish number 1
  2. class Proc
  3. def <<(other)
  4. -> (*args) { self[other[*args]] }
  5. end
  6.  
  7. def ^(n)
  8. return -> x { x } if n == 0
  9. return self << (self ^ (n - 1))
  10. end
  11. end
  12.  
  13. def B(m, n, f)
  14. return f[n] if m == 0
  15. return B(m - 1, 1, f) if n == 0
  16. return B(m - 1, B(m, n - 1, f), f)
  17. end
  18.  
  19. S =
  20. -> f {
  21. -> x {
  22. B(x, x, f)
  23. }
  24. }
  25.  
  26. SS =
  27. -> trio {
  28. m, f, s = trio
  29. n = (s ^ f[m])[f][m]
  30. g = (s ^ f[m])[f]
  31. s2 = s ^ f[m]
  32. [n, g, s2]
  33. }
  34.  
  35. m0 = 3
  36. f0 = -> x { x + 1 }
  37. S0 = S
  38.  
  39. trio = (SS ^ 63).call([m0, f0, S0])
  40. F1 = trio.first
  41. puts F1
Runtime error #stdin #stdout #stderr 2.04s 9736KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
prog.rb:14: stack level too deep (SystemStackError)