孤独のHaskell

孤独のHaskell

予定通り全体向け発表など一切無く、思い思いにHaskellなりPostscriptなりを勉強する会となりました。

……ぽすとすくりぷと?

自分のやりたいことをやりつつ時折「わからなーい」と言って上級者に助言を求める、的な、割とゆるい感じで3時間ほど行われました。現場で特にHaskell縛りがあったわけでもないですが、ディスカッションの中心はやはりそちらになりますし、参加者の層の厚みも完全にそっち方向に。

上級者が大変好意的に手伝ってくれたおかげでHaskellやエディタの設定、Macでのショートカットの作り方に至るまですることが出来、大変有意義な時間であったように思います。debianとubuntuの違いについての説明なども、その道の人には当たり前でも聞くのは参考になります。

今回、Haskellコード自体は私、ほとんど書けてないんですよね。会の直前まで別件でPHPとかPythonとかRubyに奮闘してまして、予習もすごいH本4章くらいまでしかできてませんでした。スミマセン

でも今後も(やるとして)初級レベルの参加者が怖気づかない範囲を何とかキープしたいとは思ってます。大丈夫、私が一番わかってないから!

タイトルの「孤独のHaskell」から連想されるものとは異なったところで期待はずれと思った人がいた「かも」しれない、という点は個人的には懸念してました。つまりこういうことです。
コードを書く時はね誰にも邪魔されず自由でなんというか救われてなきゃあダメなんだ 独りで静かで豊かで
そういう意味では「独り」でも「静か」でもなかったですね。「豊か」ではあったような気がしますけど。

ワイガヤという意味で、私は悪くないと思います。また、話を聞いた限り、参加者の受けは良かった印象です。私も勉強になりました。みなさまありがとうございます。

----

個々の人々の課題は分かりませんが、共通で一番話題になったお題というのがあります。『世界で闘うプログラミング力を鍛える150問』に出てくる連長圧縮 (Run Length Encoding) をHaskellで実装してみる、というものです。

http://ja.wikipedia.org/wiki/%E9%80%A3%E9%95%B7%E5%9C%A7%E7%B8%AE

# ちなみに上述の書籍は比較的イケてるコーディング問題が入っており、C++やJavaなどのレベルアップには調度良いです。Haskellに合わない問題が多いことは多いんですが。

上記の連長圧縮は初級Haskeller的には結構チャレンジングだったようで、割と時間がかかっていたようです。……ビリは予習していない私なので気にしないでください。書き方すら分からんかった。

冒頭で提示されたひびの氏の回答を写経したものがこちらになります。
https://gist.github.com/4169186

色々聞きながら私が分解したものがこちらになります。解説ありがとうございます > みなさま、ひびの氏
https://gist.github.com/4169204

# ちなみにこれをやる以前にわかめ氏と私はemacsのghc-modを動かすのに四苦八苦していました。わかめ氏はそのあと問題ときました。私は写経しました。

ロジックとしては"aaaabbbccccc"を["aaaa", "bbb", "ccccc"]にし、次に各要素を [("a", "4"), ("b", "3"), ("c", "5")] のような形にし、最後にフラットにする、という方法です。

上記の中でアロー演算子(?) &&& を使うのはどーだこーだ、というディスカッションが上級者からは出てました。個人的には……便利な気がしますね。

uncurry 等も初級者からはまず思いつかないので、このあたりはやはり他の人と一緒に勉強する強みというか、上級者いると捗るわー、という。

課題としては、教えてもらえる人がいないとここまでうまく進行はしない、という点はある気がします。何らかのかたちで既にHaskellを修めた人々にもリーチしつつ、初級者がドン引きしない環境をなんとかしたいとは思っております。特に上級者から不満があったわけではない (というか楽しんでいたような印象ではある) んですが、やはりバランス次第な気がしています。

同じ方針かはともかく、次回も何らかのかたちで勉強会を計画中です。ひっそりお待ちください

このブログの人気の投稿

風花雪月

pemって言ったら改行も仕様に含むんだよもん

LibreOfficeで表紙、目次、本体でフッターのページ番号のスタイルを変える