タグ

haskellに関するIwamotoTakashiのブックマーク (51)

  • Twitter の翻訳 - d.y.d.

    00:07 11/07/28 LOPSTR / PPDP 2011 LOPSTR と PPDP という共同開催の国際会議に行っていました。論理に基づく / 宣言型のプログラミングがテーマだそうです。 実況は例によって togetter.com/li/164644 にまとめてあります。 LOPSTR の方は、あまりよく知らなかったんですが、発表を聴いてみると、かなりガッツリと Prolog の言語仕様のディープなところに触れるような話があって、まるで、 C++Scala で盛り上がってる自分のTwitterのタイムラインの Prolog 版を見てるような雰囲気で楽しかったです。 Sloth 聴いた中では Sloth という Haskell のライブラリの話が一番面白かったので、帰ってから関連論文を読んでいました。 何をするライブラリかというと、書いた関数が「できるかぎり遅延評価する」も

    IwamotoTakashi
    IwamotoTakashi 2011/08/01
    『書いた関数が「できるかぎり遅延評価する」ものになってるかテストする』
  • http://madscientist.jp/~ikegami/articles/PointFreeStyleWhatIsGoodFor.html

    Pointfree スタイルで書こう Pointfree スタイルという Haskell のプログラミング手法を紹介します。 このエントリは Haskell Advent Calender jp 2010 のために書かれました / その他のAdvent Calender 去年のクリスマスはとうに過ぎてしまいましたが、どうかお許しください… 具体例 : 階乗計算 正の数字 n を与えられたときに 1 * 2 * 3 * ... * n を計算する関数 fact :: Integer -> Integer を考えます。 これは階乗(factorial)と呼ばれる計算です。 n が 0 や負だったときは fact n = 1 とします。 負の階乗は、数学的には 1 ではないのですが、ここでは許してください。 模範例は次のとおり: fact :: Integer -> Integer fact n

  • GHCiを電卓として使ってみる - でこすけの日記

    この記事はHaskell Advent Calendarのために書いたものです。 自己紹介 dekosukeと申します。 大学の専門は理論物理で、色々あって今はWebプログラマーをやっています。仕事で使ってる言語はPHPですが、業務外ではPHPは使いません*1 Haskellマスターではないので、黒魔術(?)はあまり使えないです。最近は簡単な計算をHaskellで書いたり、Anarchy GolfというパズルをHaskellでやったりしてます。 ぼくの言語遍歴ですが、C/C++PerlPython → OCaml → Haskellという感じでHaskellにたどり着きました。現在使用しているのはHaskell/Python/C++の3つです。 はじめに Pythonチュートリアルに、形式ばらないPythonの紹介という項があります。Pythonチュートリアルは一部しか読んでい

  • Maybe モナドの秘密 - あどけない話

    Real World Haskell 読書会での Maybe モナドに関する議論をまとめておきます。 case と Maybe モナドの導入には、必ずといっていいほど、Maybe が使われます。たとえば、子供をキーとして検索すると、父親を得られる DB があるとします。 type DB = [(String,String)] db :: DB db = [ ("Bob","Dave") , ("Dave","Steve") , ("Steve","Tony") ] コードを簡潔にするために、DB を検索するための補助関数を導入します。 lookup' :: DB -> String -> Maybe String lookup' = flip lookup これらと case を使って、ひいおじいさんを探すコードを書くとこうなります。 -- コード1 findGGFather :: Str

    Maybe モナドの秘密 - あどけない話
  • test-framework @ GitHub

    A parallel test framework for combining tests made using QuickCheck and HUnit and much more... A common testing framework that allows tests such as QuickCheck properties and HUnit test cases to used together easily. Furthermore, it enhances both styles of test with all of these great features: Run tests in parallel but report results in a deterministic order (to aid diff-based analysis of test out

  • 花谷 陽一 hanatani@mbg.nifty.com Haskellでどう書く お題: ls-lR Shell 処理全体の流れ デザインパターンで捉える Haskell のコード State パターン Strategy パターン Composite パターン Bridge パターン Facade パ

    花谷 陽一 hanatani@mbg.nifty.com Haskellでどう書く お題: ls-lR Shell 処理全体の流れ デザインパターンで捉える Haskell のコード State パターン Strategy パターン Composite パターン Bridge パターン Facade パターン Template Method パターン Interpreter パターン Maybe Monad 概要 処理の流れ main :: IO () main = getArgs >>= flip openFile ReadMode . head >>= hGetContents >>= repl . (:[]) . makeDirectoryTree repl :: [DTree] -> IO () repl trees = do putStr "ls-lR> " hFlush st

  • LampyはHaskellで書いたTropyクローンです。 - このブログは証明できない。

    先日のKPF勉強会で、はじめてのアプリケーションにTropyを作ればいいじゃない!と言ってきました。 このブログは証明できない。 Tropyについては、こちら。「お休みです」になっていますが、情報がまとまっています。 Tropy Home Page - Tropy 発表資料。Tropyの説明もチラッと。 Haskellのコードは、githubに上がっています。 no title データソースにファイルを使っていますが、ロックをかけていません。そのため、ページの削除などは省略しています。 200行くらいありますが、ここにもコードを貼っておきます。超初心者のコードなので、ごめんなさいと謝っておきます。 import Prelude import Network.CGI import Text.XHtml import Control.Monad.Trans import Data.Maybe

  • L'eclat des jours(2010-07-23)

    _ Haskellで組み合わせ なんとなく、Haskellで組み合わせを求めるプログラムを作ろうと思い立って(再帰使いまくればできそうだし)、やってみた。 sx :: Int -> [Int] -> Int -> [[Int]] sx 1 _ _ = [] sx _ [] _ = [] sx (n + 1) list x = map (++ [x]) $ select list n select :: [Int] -> Int -> [[Int]] select [] _ = [] select list 1 = map (:[]) list select list n = (sx n tlist $ head list) ++ (select tlist n) where tlist = tail list main :: IO () main = do putStrLn "list ?

    IwamotoTakashi
    IwamotoTakashi 2010/07/24
    「Haskellで組み合わせ」
  • 栄光のグラスゴーHaskellコンパイルシステム利用の手引き バージョン7.8.2

    栄光のグラスゴーHaskellコンパイルシステム利用の手引き バージョン7.8.2 The GHC Team 目次 The Glasgow Haskell Compiler License 1. 参考訳 1. GHCの紹介 1.1. GHCを入手する 1.2. メタ情報: ウェブサイト、メーリングリストなど 1.3. GHCのバグを報告する 1.4. GHCのバージョン番号付け規則 1.5. Release notes for version 7.8.1 1.5.1. Highlights 1.5.2. Full details 1.5.2.1. Language 1.5.2.2. Compiler 1.5.2.3. GHCi 1.5.2.4. Template Haskell 1.5.2.5. Runtime system 1.5.2.6. Build system 1.5.3. Lib

  • HugeDomains.com

    IwamotoTakashi
    IwamotoTakashi 2010/07/13
    なるほど!!
  • 明日に架けるHaskell—型と型クラス

    型を信じなさい Haskell が静的な型システムを持つことはすでに述べた。すべての式の型がコンパイル時に確定するのでより安全なコードとなる。もしブーリアン型を数値で割ろうとしてもコンパイルは通らない。 実行時にクラッシュするより、このようなエラーはコンパイル時に補足できるほうが良い。 Haskell ではあらゆるものに型があり、コンパイラは君が書いたプログラムについて様々な推論をコンパイルの前に実施する。 Java や Pascal とは違い、 Haskell には型推論というものがある。数値を書くときに、 Haskell に対してそのことを知らせてやる必要はない。 Haskell は自分でそれを 推論 してくれる。関数や式を書く際にわざわざ型を明記しなくても良いのだ。ここまで、型についてはごく表面的な部分しかみてこなかった。しかし、型システムについてきちんと知っておくことは Haske

  • Gabuchan.net

    Gabuchan.net Related Searches: Hot Shirts John Buchan home Hosto LVNV Funding The 39 Steps The Thirty-Nine Steps Buchan Stoneware Related Searches: Hot Shirts John Buchan home Hosto Privacy Policy

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • 第16回 Haskellでのテストの自動化を考える

    皆さんはプログラムが正しく動作することをどうやって調べていますか? いちいち実行して確認している人もいるかもしれませんが,多くの人はツールや自作のプログラムを使って何らかの形でテストを自動化しているでしょう。ここ10年くらいで「テストの自動化」はプログラマにとってなじみの深い概念になりました。今回はHaskellでのテストの自動化を取り上げます。 型検査を利用する 実は,Haskellを使っていれば,すでにテストはある程度自動化されていると言えます。 第12回と第13回で説明したSTMでは,STMモナドという特別なモナドを使い内側にI/Oアクションを記述できなくすることによって,取り消し不可能なアクションが入り込むことを防いでいました。 Prelude Control.Concurrent.STM> atomically (writeFile "sample.txt" 12) <inter

    第16回 Haskellでのテストの自動化を考える
  • 文字列の先頭と末尾にあるスペースの削除 - みずぴー日記

    30分プログラム、その614。文字列の先頭と末尾にあるスペースの削除 via http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_174。 元のやつでは、正規表現による文字列置換をしてるけど、ここではdropWhileを使ってみた。別に正規表現が嫌いという分けじゃなくて、こっちのほうが手軽なだけ。 あと、特に意図はしてないけど、ポイントフリースタイルになった。やったね。 使い方 $ echo "\t test \t " | od --format=a 0000000 ht sp t e s t sp ht sp nl 0000012 $ echo "\t test \t " | ./trim | od --format=a 0000000 t e s t sp ht sp nl 0000010 ソースコード import Test.

    文字列の先頭と末尾にあるスペースの削除 - みずぴー日記
  • interact 関数 - sirocco の書いてもすぐに忘れるメモ

    interact ってどういう関数なのか調べてみた。 base-4.2.0.1:Prelude -- | The 'interact' function takes a function of type @String->String@ -- as its argument. The entire input from the standard input device is -- passed to this function as its argument, and the resulting string is -- output on the standard output device. interact :: (String -> String) -> IO () interact f = do s <- getContents putStr (f s) getContents

    interact 関数 - sirocco の書いてもすぐに忘れるメモ
  • 文字列処言語間理比較表 - Haskellの駄目な使い方

    ここ→配列操作の比較表に触発されて、Rubyの文字列メソッドの対応物をJavaとHaskellで探してみました。 Javaの文字列処理がそれほど高機能じゃないのはある程度想定内だったけど、Haskellもなかなか1対1の対応物がない。 lines,unlinesとか逆にあまったけど。 そもそもHaskellのソレって文字列処理用っていうよりほとんど汎用リスト操作関数なわけで。 Haskellって 「汎用性の高い関数を用意したから自由に組み合わせて使ってね」 って思想だと思うわけで。 カリー化された関数の強力な応用力とあいまってこれはこれで一つの便利さの方向性だとはおもう。 ただこれの欠点は 「もっとエレガントで短い書き方があるんじゃないか?」 って不安がいつまでも付きまとう事。 (しかもタチの悪い事にパズルみたいで楽しすぎる!) 自分の修行が足りなくてイディオムを知らないせいもあるけどね。

    文字列処言語間理比較表 - Haskellの駄目な使い方
  • HugeDomains.com

    Captcha security check hackers-cafe is for sale Please prove you're not a robot View Price

  • Haskell Link

    型推論による静的な型付け、純粋な参照透明性を特徴とする関数型言語 リソース リファレンス The Haskell Home Page [en] Haskell Wiki [en] Programming in Haskell [ja] 処理系 Haskell Compilers and Interpreters [en] Hugs [en] GHC [en] nhc98 [en] Helium [en] Implementing functional languages: a tutorial チュートリアル やさしい Haskell 入門 [ja] Yet Another Haskell Tutorial [en] プログラム工学VI 授業関連資料 [ja] <- こっちの方がやさしい Haskeller への道 [ja] モナド All About Monads [en] <- 決定版

  • Haskellで速いwcを書いてみよう(1) | krの日記 | スラド

    このコメントで言及されているページを見て、 Haskellのパフォーマンスチューニングというのは実際に難しいのかどうか、自分でも試してみることにしました。 お題は「Haskellで速いwcコマンドを書く」です。上記tanakh氏のページに倣い、ここで書くwcコマンドは、 いつも標準入力からのみ読む。(ファイル名の指定とかは省略) 行数、単語数、文字数を表示する。 文字はCのchar相当。(Unicodeとか複雑なことは考えない) 単語は空白区切りで数える。(punctuation等も(空白でないので)単語内の文字とする) 行数は改行文字の数を数える。(各行の最後は必ず改行で終わると仮定する) という仕様にしておきます。 なお、実行時間の測定は以下の環境で行ないました(dmesgより)。 OS:FreeBSD 6.2-STABLE CPU:Intel(R) Pentium(R) M proc