そろそろハチロク世代第一回開発合宿について一言言っておくか

前から言っていたとおり、ハチロク世代第一回開発合宿に行ってきました、というより幹事だったのでやってきましたというほうがいいのか。

土善旅館

去年に引き続きお世話になりました。今回は大人数だったのでネットワークが不安だったのですが、大丈夫だったようです。土全旅館++。イーモバも使えたようです。

あと24時間温泉おkということはこういう生活リズムがあれな人たちの合宿においては大きいなと思いました。

合宿でやったこと

やろうと考えていたことのリストとしては

  • Rで俺俺パッケージを作る
  • Rubyではてなグループをローカルからいじれるようなのを作る
    • はてダラのグループキーワード版のようなイメージ

などを考えていましたが、これは一人でもその気になれば作れるなと思っていたので今回は見送り。せっかくGeekな人たちが多く集まる*1ので普段一人だとむりぽなことをやろうと思いました。というわけでGaucheの勉強をすることにしました。id:yaottiはGaucheからtwitterをごにょごにょするなど動くものを作っていましたが、僕はGaucheの理解を進めるということでとにかくGaucheにて再帰の勉強をすることにしました。

フィボナッチ数などの漸化式で書けるようなものを再帰で書く、というのはできたのですが、ネストしたリストに対する操作etcは自分ではなかなかできなかったので、そこをやると。Gaucheの本を見ればどういうことをやっているかは分かるんだけど、それを作る思考の過程というものがよく分からなかったのでした*2

というわけで、Gauche本を見ながらひたすら考える。が、やっぱり詰まったりしまくったわけで、id:hogelogid:hayamizid:suu-gid:yaottiにいろいろ教えてもらいながらだいぶできるようになりました!!できるようになったこととしては

  • リストをflattenにする手続き
    • いろんなバージョンで
  • リストの一致した要素を数える手続き
    • ネストしたリストにも対応するなどした
    • 普通の再帰、末尾再帰などなど
    • memberを使ったバージョン
  • (ネストした)リストの中から要素に合致するものを抽出してくる手続き
    • リストの構造はそのままで
  • filterの実装
  • mapした結果とかがundefやら'()で消せないやつがあったので、null?となる要素を削除する手続き

などなどを実装したりしてみました。ネットで調べればいくらでもでてきそうなんだけど、どう実装されているかではなく、Lisperな人たちがどのような思考過程を行った末にどう実装しようとするかの過程を知るなどのことがとにかく勉強になりました。

などなどとつぶやいていたようにLispらしい考え方を自分が(少しだけど)できるようになったというのは今回の合宿における大きな成果だと思います。

幹事業務

gdgd&手際が悪くてすいませんでした><ドタバタしたりなどなど、もう死んだほうがいい限りですがあああ。。。

その他メモ

*1:僕を除く

*2:分かるけど、作れないという感じ