IIJの技術者はセミナーや講演会等において、IIJの持つ技術力や独自研究開発、最新の技術動向について広く発信し、インターネットの発展に尽力しています。
以前は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/
導入 会社でHaskell勉強会に参加して、カリー化とか部分適用のパートの輪読当番になったのだが、正直、輪読時点でもそれがなんなのかよくわかっていませんでした。 しかし、勉強会で参加者のみなさまに教えてもらった結果、カリー化とかがやっと理解できました! ということで嬉しくなって先日寝るときに布団の中で「Objective-Cでもできるかなー」と脳内コーディングしてみた結果を実装してみました。 もう他の人がやってるかもとか、こんなん実装しても実際のところ使わないよねとか、そんなことはまったく気にせずです。 実際やってみたソースコードは こちら に置いてあります。 ひとまずのゴール カリー化して部分適用ができる状態までということで、Haskellのmapが実現できるところまでを目標にしました。 map (+3) [1, 2, 3] これです。 Objective-Cでは当然、空白区切りで引数を
Fay をいじってみたので、 せっかくだから記事を書いておこうと思います。 なお、Fayは新しい言語(というより、処理系と言った方が適切かな)ですので、 ここに書いてある情報は、来年か、あるいは半年後か、 それとももっとずっと早くに陳腐化する可能性がそれなりに低くないことを、 あらかじめお断りしておきます。 この記事執筆時に用いたFayのバージョンは、 fay-0.14.5.0 です。 デモ・前置き 特に何か作りたいものが有ったわけではなかったので、 今回作ってみたものは超どうでも良いツールです。 http://tanakh.jp/tools/sudden.html _人人人人人人_ > 突然の死 <  ̄Y^Y^Y^Y^Y ̄ こういうテキストを生成するだけのツールです。 Fayのコード HTMLコード これらのコンパイルなどもhakyllでまとめて管理できるようにしました。 hakyllに
Heroku がすごいことを知ったので少しずつ使おうとしています。 で、 Haskell で書いたアプリケーションを動かそうとしているのですが、 ちょいちょい触りつつわかったことを書いてみます。 巷では Heroku で Haskell を動かすにはビルド済みのバイナリを push するのが よく知られた方法のようです。 http://d.hatena.ne.jp/thimura/20111117/1321480728 http://www.slideshare.net/thimura1/yesod-on-heroku-12637246 http://d.hatena.ne.jp/Horiuchi_H/20121113/1352787592 http://taketoncheir.hatenablog.com/entry/2012/08/14/020456 しかしこの方法は Heroku
本書はHaskell、OCaml、F#、Scalaといった言語の普及により改めて注目される「関数プログラミング」の理論を体系的に学ぶ教科書“Introduction to Functional Programming using Haskell, Second Edition”(Prentice Hall, 1998)の翻訳です。 関数プログラミングにおける評価戦略、データ構造、計算量、型、モナドの仕組みなどについて、Haskellによるシンプルなコードを例に解説しています。
Paul Hudak, Yale University John Peterson, Yale University Joseph Fasel, Los Alamos National Laboratory September 28, 1999 翻訳:山下 伸夫 <nobsun@sampou.org> これは、「やさしい Haskell 入門 (バージョン98)」のHTMLバージョンです。 目次要約 イントロダクション 値、型、その他の有用な概念 関数 case 式とパターン照合 型クラスとオーバローディング 再び、型について 入出力 標準の Haskell クラス モナド 数 モジュール 型付けの落し穴 配列 この先の学習 参考文献 目次 このHaskell Tutorialのマスター文書は、 haskell.orgにあります。このレポー トの訂正や変更はすべてそこに反映されるようになっ
■ [Haskell] The Typeclassopediaを訳しました The Monad.ReaderのIssue 13に掲載されたThe Typeclassopediaという記事が、Functor, Monad, Monoid, Applicative, Foldable, Traversable, Arrowといったような型クラスについて良くまとまっていて、そのあたりを知りたい時の取っ掛かりになりそうだったので翻訳してみました。 作者のBrent Yorgeyさんからも許可がいただけたので公開します。翻訳に慣れていないので変な日本語(特に専門用語の日本語訳はかなり怪しい)があったり、そもそも間違っていたりするかもしれませんので、何か見つけたらコメントを頂けると助かります。 ■ [Haskell] The Typeclassopedia by Brent Yorgey <first
Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode
HaskellのユニットテストフレームワークであるHUnitを使ってみました。テスト対象のコードは、先日書いたsign関数です。 HUnitのインストール なにはともあれ、まずはHUnitをインストールしました。Cabalのおかげで簡単に入れられました。 $ cabal install HUnit テスト対象コードのモジュール名検討 つづいて、テスト対象コードのモジュール名を何にするか検討しました。このモジュールは「キープリスト」というWebアプリケーションで使う予定であり、AmazonのAPIに関わるものなので、「KeepList.Amazon」に決めました。 ファイル構成の検討 つづいて、テスト対象コードとテストコードをどのように配置するか検討しました。モジュール名の名前空間の階層をそのまま生かし、テストコードを「tests」ディレクトリに入れることに決めました。 $ tree . |
というタイトルで、先日、社内の公開セミナーで話しました。 発表資料はこちら。 Haskellのテストフレームワークとベンチマークフレームワークがよくできているので、 これをC++でも使えるんじゃないかという内容です。 概要 背景として、QuickCheck をもっと多くの人に知って/使って貰いたいというのがあります。 QuickCheckは、普段から使っている人間からすると、よくいろいろなバグを拾ってくれるとても便利なものなのですが、 残念ながら普段開発に利用しているC++には相当のもので完成度の高いものが見当たりません。 だからといって、そこから作るためにC++のテンプレートをいじくりまわすには、私はもう老いてしまいました (与えられた関数にランダムな入力を与えるだけなら簡単なのですが、ジェネレータを自由にいじれる機能がやはり欲しいところで)。 そう思った時に、FFIを使えてQuickC
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
プログラミングの経験はあるが、Haskell は使ったことがない人に、2時間ぐらいで Haskell のよさを教える演習のネタを考える。 Haskell の代表的な利点といえば、 型による厳密なプログラミング QuickCheck によるテストケースの自動生成 Persec によるパーサーの作成 だ。今回は、パーサーの作成は諦めて、上2つについて教えてみる。 リストの探索プログラム まず、連想リストを探索するプログラムを書く。標準では lookup という関数が用意されているが、これを search という名前で再発明する。オーダーは O(n)。 まず、型を考える。 search :: Eq k => k -> [(k,v)] -> Maybe v search = undefined 次に、実装を考える。 search :: Eq k => k -> [(k,v)] -> Maybe v
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く