Login
7 branches 0 tags
Ben (X13/Arch) Optimized the scheme benchmark a bit 6affa29 3 years ago 925 Commits
nujel / tests / slow / euler004.nuj
#!/usr/bin/env nujel

[defn reverse-num [a]
      [def ret 0]
      [while [> a 0]
             [set! ret [* ret 10]]
             [set! ret [+ ret [rem a 10]]]
             [set! a [div/int a 10]]]
      [return ret]]

[defn palindrome? [a]
      [== a [reverse-num a]]]

[def max 0]
[dotimes [a 1000]
         [dotimes [b 1000]
                  [def p [* a b]]
                  [when [and [palindrome? p]
                             [> p max]]
                        [set! max p]]]]


[when [not= max 906609]
      [throw [list :wrong-result "Wrong result" max]]]
[return :success]