もし僕らのことばがS式であったなら

という題で、5分間のScheme紹介をしました。
前半は、メタ言語としてのSchemeの話を、後半はDrSchemeについてを中心に話しました。

  • DrSchemeには、S式でプレゼンが作れるSlideshowというプログラム言語が同梱されているので、使ってみました。
  • クロスプラットフォームGUIが作れる MrEd がすごくいい感じです。サンプルにメモ帳(collects/mred/edit-main.ss)がついてきます(新エディタ Shiki の叩き台になるかと勝手に思ってみたり)。
  • FrTimeのFunctional Reactive Programmingも面白いです。secondsを評価すると、それの結果表示が一秒ごとに変わるんです。「何を言ってるのか わからねーと思うが(ry」 FRPHaskell方面で有名らしい。
  • 当日のスライド。


(module slide (lib "slideshow.ss" "slideshow")
  (require (lib "code.ss" "slideshow"))
  (require (lib "face.ss" "texpict"))
  (slide/center
   (bitmap (build-path (current-directory) "vista.jpg")))  
  (slide/title
   "もし僕らのことばが S式 であったなら"
   (page-item "S式 -> Javascript")
   (page-item "S式 -> Java")
   (page-item "S式 -> XML")
   (page-item "S式 -> HTML")
   (page-subitem (code (table
                        (tr (th "Item No") (th "Quantity"))
                        (tr (td 1) (td 120))
                        (tr (td 2) (td 30))
                        (tr (td 3) (td 215))))))

  (slide/title/center
   "DrScheme"
   (page-item "MrEd (wxWidget によるクロスプラットフォームGUI(Win, Mac OS X, Linux)")
   (page-item "FrTime (Functional Reactive Programming)")
   (page-item "Lazy Scheme (遅延 Scheme)")
   'next
   (page-item "そしてこの、Slideshow")
   'next   
   (page-item
    (code (t "このプレゼンはS式でできています。日本語も")))
   (colorize (t "OK") "red")
   (text "角度" main-font font-size (/ 3.14159 4))
   (frame (t "枠"))
   (code (colorize (t "OK") "red")
         (text "角度" main-font font-size (/ 3.14159 4))
         (frame (t "枠"))))
  (slide/title
   "顔も"
   (code (require (lib "face.ss" "texpict"))
         (face 'happy "yellow")
         (face 'badly-embarassed))
   (blank)
   (hc-append
    (* 3 gap-size)
    (face 'happy "yellow")
    (face 'badly-embarassed))))