Let's start Scheme

2012-09-22

括弧ゴルフ再び

リードマクロを実装したときに書いたネタ再び。(書いたよね?)
ちなみに、元ネタはこちら
本当にLispはカッコが多い? - 八発白中 
今回はSRFI-49という最強の武器(w を持ったのでこんな風に書ける(0.3.7)
#!reader=srfi/:49
import
  srfi :1

define
  fact x
  if
    = x 0
    1
    * x
      fact
        - x 1

define
  printer i
  print i " ! = "
    fact i

define
  main args
  for-each
    printer
    iota
      if
        null? args
        1
        string->number
          cadr args
      1
Readerの切り替えに#!を使うので括弧0を実現可能!!!wwww
SRFI-49をサポートしている処理系(今のところSagittariusだけっぽい) ならSchemeで括弧ゴルフに勝利することができる。
なんだか、行き着くところまで来てしまったか感がする。

No comments:

Post a Comment