You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Haskell programmers have access to so-called arrow notation for programming with arrows (i.e. generalised functions). It looks something like this: {-# LANGUAGE Arrows #-} f :: (Int, Int, Int) -> (Int, Int, Int, Int) f = proc (a,b,c) -> do d <- (+1) -< a e <- uncurry div -< (d,c) f <- negate -< e g <- (*2) -< b returnA -< (d,e,f,g) To me this is not very satisfying. It doesn’t seem to convey the a
Haskell Advent Calendar 13日目の記事です。 ごきげんよう。 今年も音楽の冬がやってまいりました。Haskellより音楽のほうに力を注いでいる気がするこの頃ですが、ふとこう思いました――「Haskellでシンセサイザーを作たらとても楽しいのではないか?」 シンセサイザーの仕組みは、たとえばFM・減算式ならこうなります: しかし、これが実装出来てもあまり嬉しくない、というのはわかっていただけるのではないでしょうか――そう、ただのシンセサイザーではなくどんなシンセサイザーでも作れるフレームワークが欲しいのです。 部品を作る部品 -Artery- まず、私は、部品同士を「配線」できるようにするため、arteryというパッケージを作りました。 ArteryはArrowとしてのインターフェイスを持っています。Arrowはごく簡単に表現すると、以下のようなクラスで表現されます(
思えば自分にとってプログラミングとは、XML っぽいドキュメントを操作することでした。 XML パーザを書いてみたり、SXML でいろいろがんばったり、やる前から XSLT に挫折したり。 とにかく気持ちよく XML を操作する方法をこれまでいろいろ探してきたわけですが、今はこう断言できます。 XML をいじるのに最高な道具は HXT(Haskell XML Toolbox)であると。 そこで自分用のメモを兼ねて、「こんなふうに HXT を使ってます」を紹介しようと思います。 基本的な Haskell 力が高くないので、「理解を間違っている」とか「もっとこう使うべき」というツッコミ歓迎です。 HXT がうれしい理由 XML のような木構造のデータをいじろうと思ったとき、まず思いつくのは、根っこから順番に要素をたどりつつ処理していく方法です。 しかし、この方法は案外と融通が利きません。 常に
An success story of Arrows Published on January 14, 2012 under the tag haskell This is a recap of an older blogpost of mine. I decided to rewrite it after I wanted to refer a friend to it, and I saw the blogpost clearly failed a bit in getting the point across. In this blogpost, I hope to correct that. It’s about a situation in which Monads fall short, but Arrows (and Applicative) prove to be very
Netwire is a functional reactive programming library that provides both an applicative and an arrow interface. It allows you to express time-varying values with a rich event system. Project page Source repository Features Here is a list of some of the features of Netwire: applicative interface (or optionally an arrow interface), signal intervals, dynamic switching, rich set of predefined functiona
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
日曜日に3回目のHIMA'を開きました。今回のテーマはArrowとid:itto100penさん一押しの随伴関手でした。ベースとなるテキストは関数プログラミングの楽しみを使いました。 進行は僕が10章「アローと計算」を読み上げ、疑問点が出てきたところでid:msakaiさんとid:itto100penさんが解説するという形式で進めました。以下勉強会中にメモした記録+αです。 記録 pure = arrでOK? OK pureだとApplicativeと被ってしまう 「入力とは独立した静的構成要素を持つ計算とは何か」 Stateの例とか? p.237で触れられる構文解析コンビネータがまさにこの例 Arrow記法はHaskell 2010に含まれない {-# LANGUAGE Arrows #-}が必要 計算の概念 状態変換子 このStateはカリー化してflipするとStateモナドと同等
■ [ruby] gem-depcleanについて、とりとめもないこと RubyGemsをgentooのPortage風に管理するプラグイン、gem-depcleanをid:ursmさんが公開されています。 gem-depclean - ursmの日記 やりたいことは 依存元がなくなったgemの削除 必要なgem・versionだけ残すgem clean の2つですよね。 前者について これはRubyGemsの機能として含まれるべきでしょう。uninstallの時に、「それが必要としているが、他から必要とされていないgem」を 同時に消すオプションがあれば良いんですよね。 後者について 「gem clean railsしたら、昔書いたアプリで使ってたバージョンが消えて困った」とかの経験は僕もあります。 「このバージョンはまだ使ってます」フラグを立てることが出来たら良いのかも。(aptitu
Arrowlets is a JavaScript library that uses the concept of arrows to make the task of composing event-handlers easy. Event handlers are written as normal functions, as you would today, and Arrowlets provide flexible combinators to easily compose sequence of events, animation, asynchronous network access, and making long-running computations while keeping the UI responsive. For a tutorial, Chris Ei
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く