タグ

2013年8月16日のブックマーク (6件)

  • Scala using(Hishidama's Scala loan-pattern Memo)

    Scala using(ローンパターン) C#では、オープンしたファイルを確実にクローズしてくれるusingという構文がある。 これと同じような事をScalaでやってみる。 テキストファイルを読み込む例を考えてみる。 ScalaではSourceクラスを使い、読み終わったら(あるいは途中でエラーになっても)クローズする。 この為、tryブロックで囲み、finallyでclose()を呼び出す。 val s = scala.io.Source.fromFile("C:/temp/a.txt") try { s.getLines.foreach{ println } } finally { s.close() }これを、以下のような感じで扱えるようにしたい。(usingブロックを抜けると自動的にクローズする) using(s = scala.io.Source.fromFile("C:/temp

    somemo
    somemo 2013/08/16
    みんな作りすぎわろたの図 らしい[scala][LoanPattarn]
  • 関数リアクティブプログラミングの実践

    リアクティブプログラミングって何? 時刻によって変化する値を使って計算する x = mouse_position.x y = mouse_position.y sum = x + y printf("(%d, %d); sum=%d", x, y, sum) 入力が変わるたびに再計算 用途: UI、シミュレーションなど Haskell/ML上のリアクティブプログラミング Behavior a: 時刻によって変化する値(中身a型) Event a: 繰り返し発生し得るイベント(a型の値が付属) mousePosition :: Behavior (Int, Int) mouseClick :: Event () コンビネータ mapB :: (a -> b) -> Behavior a -> Behavior b mapE :: (a -> b) -> Event a -> Event b

  • 2013年8月現在のHaskell開発環境 - maoeのブログ

    以前はHaskell Platformを使っていたのだけど、Cabalの依存関係ソルバがあまり賢くなかったこともあり、いわゆるdependency hellに陥ることが多かった。それからというものHaskell Platformを使わない環境を使っている。OS Xでは公式のインストーラやらHomebrewやMac Portsなど幾つかの方法が用意されているが、こんな方法もあるよということで紹介してみよう。 GHCのインストール GHCのリリース版は自分でビルドしない。時間が掛かるから。インストーラは使わずにtarball版を使う。これはインストール先を自分で指定したいため。 tar zxvf ~/Downloads/ghc-7.6.3-x86_64-apple-darwin.tar.bz2 cd ghc-7.6.3/ ./configure --prefix=/usr/local/ghc/

    2013年8月現在のHaskell開発環境 - maoeのブログ
  • Mizon Dev Diary | 2013-05-04

  • Unityで活かせるLINQの底力!! (前編)

    Unity3Dの公式マニュアル翻訳やってる人がiPhone, Androidでのゲームアプリ開発について記事にしています。Unity3Dでの開発をメインにAsset Storeで入手できるNGUI, Playmakerや, Oculus Riftなど作者サイトからの英語情報を翻訳していきます 最近、アセットストアでダウンロードしたコードに たまたま、LINQ を活用しているものがあって興味をもった。 そして「なるほどLINQ で書くと美しく見やすいコードを書ける場合があるのだ!」と素直に感じた。 調べてみたら、一般論としてUnity でどのような場合に活用すると良いか、Unity Gems に良い記事があったので2 回の投稿に分けて翻訳を紹介させてもらいたい。 長文ゴメン!!でもLINQをUnityでどう活用するか知らなかった人は覚えとくと、きっと役立つぜ! http://unitygem

  • Rubyのblock、Proc、lambdaを理解する - このブログは証明できない。

    新年おめでとうございます。2009年の最初のネタはプログラミングのネタにすることにしました。 Rubyについてのステキなエントリーがあったので、紹介します。 no title 私は翻訳能力がないばかりか、リーディング能力も貧相です。ぜひ、原文を読んでみてください。 はじめに Rubyblock、Proc、lambdaはパワフルですが、解りにくい。Rubyはクロージャを使う方法が4つあって、それぞれチョットずつ違います。ここでは、そのへんを解説したいと思います。 Block もっとも簡単で、かつRubyっぽいと言えば、Blockですね。 array = [1, 2, 3, 4] array.collect! do |n| n ** 2 end puts array.inspect # => [1, 4, 9, 16] 何が起こっているか? まず、block付きでArrayの"collect

    somemo
    somemo 2013/08/16