こんにちは、天野勝です。この度、オブジェクト倶楽部の事務局長になりました。主宰の平鍋健児をはじめ、同好の士が集まっている永和システムマネジメントの人たち、そしてオブLOVEファンのステキな笑顔が見られる、そんなステキな倶楽部になるように、事務局長の仕事を楽しみながら運営をしていきたいと思います。┗【プログラミング】ゆるーいHaskell[5]こんにちは、西川です。暑い夏が終わって大分過ごしやすくなってきました。涼しくなればいいのに。今回はリストを扱う基本的な関数をいくつか紹介したいと思います。[0..4][1,2,3,4,5]ghciではletを使って関数を定義することができます。引数に1を加え値を返す関数add1を定義しました。map関数は第二引数のリストに対して第一引数の関数をそれぞれ適用するという処理をおこなう関数です。上の例では[0,1,2,3,4]のリストの各要素にそれぞれ1を足しています。二引数のリストの各要素に適用する関数です。イメージとしてはこんな感じです。引数の関数をf、第二引数のリストを[x0,x1,..xn](n個の要素を持つリスト)とします。[1,2,3,4,5]なんとなく理解していただけたのではないでしょうか。map関数の型を見てみましょう。b)という型を持つ関数です。function)』[*1]と呼びます。数の引数にする、という処理を延々繰り返す関数です。繰り返すので結果は当然無限リストになってしまいます。今回はtake関数をつかって先頭から10個だけを取得しています。前回も紹介した関数takeも勿論リストを扱う基本的な関数の1つです。...■たたみこみ関数foldr、foldl次はfoldr,foldlです。俗に『たたみこみ関数』と呼ばれています。a名前も似てますが型もよく似ています。それぞれ動作させてみましょう。["1","2","3","4","5"]"012345"この例だと単純に第二引数である「"0"」が右についたか左についたかの違いにしか見えません。実はfoldr、foldlはもう少しややこしい関数なのでもうちょっとひねった例をあげます。[1,2,3,4,5]-15結果が異なりますね。foldr、foldlは右からくっつく、左からくっつくというだけの違いではありません。["1","2","3","4","5"]"(((((0-1)-2)-3)-4)-5)"余談ですが、Haskellでは関数名にシングルクォートを使うことができます。sub'関数はsub関数のアレンジなのでシングルクォートをつけてみました。foldrは第一引数の関数を右から優先的に適用します。foldlは第一引数の関数を左から優先的に適用します。上記の例からfoldr、foldlはそれぞれ以下のようなイメージで評価されていることが分かります。xnfoldr、foldlの例はちょっと難しかったでしょうか。私も上手く使えないことが多々ありますが、徐々になれていけば良いと思います。今回紹介した関数の他にもリストを操作する関数は沢山あります。介していきますのでお楽しみに。次回はタプルについてお話します。http://ja.wikipedia.org/wiki/%E9%AB%98%E9%9A%8E%E9%96%A2%E6%95%B0_______________________________________________________________________この記事への評価にご協力をお願いします。URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用のブラウザに表示されれば投票完了です。業者のためのイベントなのですが、一般公開の日があり、筆者も初めて参加してみました。様々なメーカーが出展して新製品の紹介をしていました。今回の記事では、その中で、会場の各所で目にとまったホワイトボードの紹介をしてみます。最近筆者の回りで流行っているホワイトボードについても紹介します。●貼ってはがせるホワイトボード筆者は以前の連載[*1]でホワイトボードを設置の仕方で分類し、その解説をしたことがあります。その後、別タイプのホワイトボードの解説もしました。[*2]今回ISOTで見かけたのは、前回紹介したものとは事なるまた新しいホワイトボードでした。http://www.objectclub.jp/ml-arch/magazine/126.html1つはポストイットで有名な3M社の「貼ってはがせるホワイトボード」[*3]でした。これはポストイットで使われている弱粘着性の糊を使って、ホワイトボードシートを壁面に貼り、使用できるというものです。マグネット方式とは異なり、スチール壁以外でも貼って使用することができます。使用した後は、はがして丸めて持ち運びができます。糊の粘着が弱くなった時のために固定するためのテープまで用意しているという周到さです。http://www.office-online.co.jp/SHOP/43797/list.html次に紹介するのは、「吸着性」のホワイトボードのタイプです。このタイプは小さな吸盤がビッシリ裏面に配置されてあり、平らな壁面に貼ることができます。ガラス窓やガラスのパーティション、もちろんスチールのパーティションにもつけることができます。込まれていてマグネットを使用することもできます。筆者もサンプルを取り寄せて使用してみましたが、思ったより吸着性能がよく、ガラス面に貼れるのはかなり便利だと感じました。http://www.koho-pr.co.jp/index.html他にもホワイトボードペーパー[*5]という粘着性ホワイトボードもあるようです。こちらはレーザープリンターで自由に印刷できるのが特徴のようですね。http://www.dragon-net.co.jp/wbp/wbp.htm●携帯用ホワイトボードを自作する最近携帯用ホワイトボードを自作するのが流行っています。このホワイトボードを自作した人たちは、本当にカバンにホワイトボードをしのばせて「携帯」しています。材料は100円ショップで売っているホワイトボードシートと、それを貼る素材です。素材はなんでもよく、アクリル板や厚紙、クリップボードなどがよく使用されているようです。近くに100円ショップがなくても、若干高めではありますが通販で購入することもできます。鉄箔を含んでいるタイプのホワイトボードシートならば、マグネットも使用することができてさらに便利です。自作のメリットは、自分の趣味嗜好に応じてカスタマイズできるという点です。一般に購入できるホワイトボードでは、ほとんどといってよいほど枠がついてしまいます。自作ならば枠なしで軽量化したホワイトボードを自作することも可能ですし、スチレンボードに貼ることで軽量化を図ることもできます。何を隠そう、オブジェクト倶楽部主催の平鍋氏は携帯用ホワイトボードを自作して持ち歩いています。出先で何かを説明する時によく使用しています。オブジェクト倶楽部の水越氏はカバーつきのクリップボードをホワイトボードにして、日々のtodoを記入してtodo管理に使用しています。部事務局長の天野氏は、B3サイズ(B4サイズ2枚)のホワイトボードでふりかえり(KPT)をしています。●環境に合わせて工夫する前半は市販品、後半は自作品を紹介しました。最近では「lifehack(ライフハック)」という言葉が世間で流行っています。日々の生活に便利なようにツールを自分で考えたり、自作したりすることをこう呼びます。思えば「hack」という言葉はソフトウェアの世界では悪い意味としてとられてきました。元々は自分が使いやすいようにソフトウェアに手を加えることを「hack」と呼び、そのようなhackをできるエンジニアを「hacker(ハッカー)」と呼びます。質なエンジニアの意味で使ってきました。行り、いつか「ハッカー」という言葉が一般的に「優れたエンジニア」として使われることを期待しています。以前のオフィスでもそうでしたが、必ずしもスチールの壁が使えるというものではありません。環境にツールが作用されてしまうのはちょっと悲しいですね。貼って剥がせるホワイトボードや、吸着型ホワイトボードは、そういった環境の制約を越えるための1つの方法です。言うとツールは購入してからが勝負です。購入してからも「lifehack」つまり日本語で言う「工夫」をこらして、皆さんの環境にぴったりのツールと使い方を造りあげることができたら素晴しいですね。(懸田)_______________________________________________________________________この記事への評価にご協力をお願いします。URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用のブラウザに表示されれば投票完了です。ホントのところ今週は「どんなスポーツやってますか?」のホントのところ。エンジニアはどうも軟弱なイメージを持たれやすいらしいのですが、それは偏見かも。今どきのエンジニアの皆さんはかなりスポーツ経験者が多いようです。お休みもかなり趣味として楽しんでいらっしゃるようです。スポーツの秋にちなんで、皆さんに聞いてみましょう。サッカーやフットサル。ジムなどでワークアウト。