JavaでMonadをはじめからていねいに by Yuji Yamamoto on August 28, 2016 「モナドについてSwiftで説明してみた」という記事などで指摘されているように、プログラマー向けにMonadを説明した記事はサンプルがHaskellで書かれていることが多いので辛いですよね。 HaskellではMonadは「ないと文字通りプログラムが書けないぐらい」大事なもので、入出力処理や例外処理、ダイナミックスコープのシミュレーション、非決定計算など、普通の関数では難しい、非常に様々な機能の実装に使用されています。 その一方、MonadはC言語のポインターに並んでHaskellを学ぶ上での障害である、なんて言われたりもするとおり、他言語ユーザーからHaskellを敬遠させる大きな要因の一つともなっています。 そんな悲しい現状を少しでも改善するために、上記の記事を参考にしつ
最近、自社内でHaskell勉強会を毎週のように開いているのですが、 ドキュメントの調べ方について聞かれたのでこっちにメモしておきます。 と、いうわけで、hackageに公開されているHaskell製パッケージのドキュメントについて簡単に説明しましょう。 baseという、PreludeをはじめGHCに標準で入っているパッケージのドキュメントも同じように調べられます。 パッケージの名前や、概要から検索したい場合は hackageから検索するか、 stackageのトップから「browse packages」というリンクをクリックして、LTS-Haskellに載っているパッケージをページ内検索してください。 今のところ、パッケージの名前で検索するフォームはstackageにはないみたいです。 後者は、LTS-Haskellに載っているパッケージのみの一覧なので、hackageに公開されているす
報告が遅くなってしまいましたが、 (多分)日本初のElmの勉強会、「Tokyo Elm Programming Meetup」に参加しました! 企画していただいたWyatt, 会場を貸していただいたCasley Consultingさん、ありがとうございました! せっかくなんで軽めのネタで発表して参りました。 半ば飛び込みなところを受け付けて頂きありがとうございました! 以下が資料です。 Whom to Recommend Elm to? 一応Slideshareにも挙げましょう。 ついでに、「何かElmで作ったものないの?」と質問され、 昨年のElm Advent Calendarで作成したラブリーコミューンも意図せず紹介することになり、楽しい発表となりました。 ちょっと緊張したけど割りと受けたようで安心です。 懇親会では結構Haskellとの違いに関する話題が多かったようです。 Has
もうこの記事はメンテしてません 今更の更新ですがこの記事はとっくの昔からもうメンテしてません。(随時更新)とか安易に書くべきじゃないですね... 😰 今新しくvimでHaskellの開発環境をセットアップするんでしたらとりあえずHaskell IDE Engineと適当なLSPクライアント(vim-lspかLanguageClient-neovimあたり)を入れるのがいいんじゃないかと思います。 筆者は現在LanguageClient-neovimでやってます。補完ぐらいしか使えてないけど...。 haskell-vim-nowを使うと早いらしい いろいろいっぺんに入れてくれるらしいです。 が、出しゃばり過ぎてて既存の設定と衝突すること間違いなし1 なので、今回は上記で紹介しているものをひたすれ入れてその時の記録をメモします。 つまり、haskell-vim-nowのinstall.sh
前回の記事では、 stack newしてとりあえず簡単なHaskell製のプログラムを書き始める方法をお伝えしました。 今回は、前回の記事でTODOになっていた、stack newして作られるファイルのテンプレートの設定を変えて、もうちょっと始めやすくしたいと思います。 ちょうど僕が新しいプロジェクトを作りたくなったので、その作業記録です。 ハマりどころ: stackのバージョンが古かったorz いきなりですがハマりました... 下記の通りに動かすには、stackを0.1.4.0以降に上げる必要があります。 更新する場合は、やはりOSによって方法が異なってしまいますが、 stack upgradeと実行すると、よしなにやってくれるかもしれません。 (EXPERIMENTALな機能だそうなのでご利用は計画的に。) 私の場合は、Arch Linuxなので普通にyaourt -S haskell
昨日第23回Haskellもくもく会 @ 朝日ネットで初めてstackを触ったのですが、 あまりにも簡単・高速にパッケージ作りの準備ができたので、やったことを共有したいと思います。 GHC(Haskellの最も有名なコンパイラ)のインストールまでやってくれるので、これからHaskell始めます!みたいな人にもオススメです。 stack自体が何かは @tanakh さんのHaskellのビルドツール"stack"の紹介をご覧ください。 一言で言うと「GHCのインストールからパッケージのインストールにビルドまで、ワンストップでやってくれる神ツール」ですかね。 インストール 各OSごとに微妙に違うみたいなので、公式ページの解説をご覧ください。 とはいえ、基本的には実行ファイルをPATHのどこかに置くだけなので、この手の作業に慣れている人には朝飯前でしょう。 1ファイルだけでインストールできちゃう
関数型プログラミングから予測可能プログラミングへ by Yuji Yamamoto on July 25, 2015 なんだか興に乗ってきたので、私もポエムめいたものを書いてみようと思います♪ このシリーズの目次はこちら 要約: ポエムなんてうんざりな人へ 「Haskellが関数型プログラミングの王道だよ」という理解は、誤解のもと。 今後このシリーズで言う「関数型プログラミング」とは、 「純粋な関数」を主に使用して行うプログラミングのこと。 Haskellの本当によいところは 「プログラムの振る舞いを、コードを実行せず、読んだだけで予測できるようにする」という点。 動機: なぜ書くのか ここでは、私がHaskellをなぜ好むのか、 いわゆる「関数型プログラミング」との関係に触れつつ説明することで、考えを少しずつまとめたい。 一つの記事には収まらないので、複数の記事に分けてシリーズとする。
This is a Japanese tranlation of Attended LambdaConf 2015 in Boulder!. 5月22日から24日かけてアメリカのコロラド州、 Boulder(ボールダー1)にて開催された、「LambdaConf 2015」に参加しました! なのでまた超今更の私的まとめです! 知ったこと いろいろありましたが、以下のセッションに参加しました。 概要と感想は、私が居眠りしないでちゃんと参加できたものだけ書いておきます。 (残念ながら時差ボケにやられてしまったのです…) Day 1 Write Some Idris Idris入門。私にとっては依存型の入門でもありました。 面白かったのですが、詳細を聞き取れなかったせいもあってか、めちゃめちゃ難しかったです。 練習問題中の合間を縫って、まだ答えていない問題の答えを推測したりサンプルコードをいじった
Lens&Prism勉強会 私的まとめ by Yuji Yamamoto on June 9, 2015 もう開催から1週間以上経ってしまいましたが、Lens&Prism勉強会に行ってきたのでそのまとめ記事です。 当日しこしことっていたメモと記憶を頼りに、発表内容や個人的な気付きなどを書きます。 @gakuzzzzさんの「Lensの説明」 connpassには別のスライドが貼ってありますが、実際の中身はBeyond Scala Lensというスライドの日本語での解説でした。 要約するとこんな感じの表に収まるのですかね。 スライドではScalaでの呼び名で説明されてましたが、ここでは私向けにHaskellに訳しています。 -- 全てのsをaに変換でき、かつ全てのaをsに変換できる関数のペア Iso' s a: f :: s -> a, g :: a -> s -- 全てのsからaに変換できる
モナド基礎勉強会 参加・LTしました + 【重要】発表内容の訂正 by Yuji Yamamoto on March 23, 2015 3月21日土曜日、名古屋で行われたモナド基礎勉強会に参加し、LTしました。 後れ馳せながら感想記事です。 知ったこと やはり想像通りの難しさで内容の9割は理解できなかったように思いますorz 事前にLTのために初歩的な部分は理解したつもりだったので結構行けるかな、と思いましたが甘くないですねー。 そんな中でもふんわりと理解できたこととその印象を。(一部、@khibinoさんからアドバイスを元に得た理解もあります。) 圏論の基礎は全部読むんじゃなくてリファレンス的に持っておくといいそうですね!特に前書きは地雷らしい。 モナドが「モノイド対象」たるゆえんはjoinが結合則を満たすところにあるそうです。だからjoinはあんなに持ち上げられる 1のか… Freeモ
HaskellJP WikiをHerokuに上げるまで by Yuji Yamamoto on December 20, 2014 この記事は、 Haskell Advent Calendar 2014の12月20日の記事です。 業務連絡:HaskellJP WikiはHerokuにお引っ越ししました。 きっかけはHaskellJPのGoogle グループに、ある日突然現れた投稿でした。 すいません、、、http://wiki.haskell.jp/ をシャットダウンしようと思います それまでHaskellJP Wikiの管理をされていたmasterqこと岡部さんが、 HaskellよりもATSという言語に惹かれるようになったのをきっかけに、 HaskellJP Wikiの管理をやめることになってしまったのです1。 スタートHaskell 2の記録など、私にとっても思い出深いコンテンツが含
タイムテーブル13:00~ 自己紹介(大雑把に何をするのか教えていただきたいです。) 13:15~ ひたすらもくもく作業 19:00~ 有志の方により、何をしたのか簡単に成果など発表(プロジェクターも使えます) 19:30~ どこかで懇親会をします。 参加費用今回は弊社オフィスを借りることができたので、無料です! 懇親会費はやっぱり実費です。3000円~4000円程度を予定しています。 ハッシュタグ#haskellmokumoku 会場について公式サイトの地図では、表参道駅のB2番口が書かれていますが、主催者はいつも渋谷駅から通っています。 11番口から出て、宮益坂を登っていくルートが一番近いでしょう。 ビルに入ってエレベーターで13階まで上がったら、左側の入口に進んでください。 電源あります!ただし数が限られているので、主催者が電源タップを一つ持ってきます。 ネットは無線が使えます。
1. 「やらなければならないこと」としてのHaskellのMonad 2. はじめまして! 3. 今日話すこと・話さないこと 4. 先に結論 5. Monadは型クラス 6. そもそも型クラスって 7. 型クラスのいいところ 8. Monadの場合は? 9. ここで(>>=)を見てみましょう。 10. ここで(>>=)を見てみましょう。 11. ここで(>>=)を見てみましょう。 12. つまり!! 13. 要するに!! 14. 例えば!! 15. で、なにがうれしいの? 16. で、なにがうれしいの? 17. まとめ
Attoparsecを使っていてハマったところをいくつか by Yuji Yamamoto on January 5, 2014 Haskellでちょっとしたコマンドを作りました 自分専用のスクリプトとして、と考えていたのですが、 作っているうちにいろいろ技術的なことを共有したくなったので、 Githubで公開しました。 (とはいえ、あくまで自分用なのでhackageには上げません) 中身は単純で、cabal build vm-backup-snapshotしてから実行すると、 VirtualBox上で1作成した「Ubuntu」という名前のVMから、 一番古いスナップショットを削除したり、 名前に現在時刻を付けたスナップショットを作成したりできます。 (書いていて今更気づきましたが、いくら自分用とはいえ、 VMの名前ぐらいハードコードしないほうが良さそうですね…) 詳しくは main.hs
Pemeliharaan Terjadwal: Funky Games pada 08-Jun-2025 dari 00:00:00 sampai 09-Jul-2025 23:59:59. Selama waktu ini, Funky Games permainan tidak akan tersedia. Kami memohon maaf atas ketidaknyamanan yang mungkin ditimbulkan. Pemeliharaan Terjadwal: Spinix pada 01-Oct-2024 dari 23:00:00 sampai 31-Dec-2025 23:59:59. Selama waktu ini, Spinix permainan tidak akan tersedia. Kami memohon maaf atas ketidakn
Pemeliharaan Terjadwal: Funky Games pada 08-Jun-2025 dari 00:00:00 sampai 09-Jul-2025 23:59:59. Selama waktu ini, Funky Games permainan tidak akan tersedia. Kami memohon maaf atas ketidaknyamanan yang mungkin ditimbulkan. Pemeliharaan Terjadwal: Spinix pada 01-Oct-2024 dari 23:00:00 sampai 31-Dec-2025 23:59:59. Selama waktu ini, Spinix permainan tidak akan tersedia. Kami memohon maaf atas ketidakn
2012年12月22日15:27 カテゴリHaskell (Haskell) Debug.Traceとdo記法 Haskellのお話。 Maybeモナドを使った処理で、 Debug.Trace使いたいなーと思って使ってみたら個人的にハマった時のメモ。 要はDebug.Trace.traceの使い方を根本的に勘違いしてた、ってことです。 やりたかったこと Maybeをdo記法の中で使っている時、 途中の各関数が期待通りの値を返しているか、printfデバッグしたかった。 全然ダメなバージョン monadicTraceという適当な関数を定義して使ってみたが、 monadicTraceの結果を捨てている(他の関数で使用していない)ため、 monadicTraceは実行されず、結果何もtraceされない。 (もう一月近く前に書いたコードなので忘れたけど、警告が出るはず) -- for debugg
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く