タグ

haskellとfunctionalに関するjjzakのブックマーク (77)

  • http://www.ipl.t.u-tokyo.ac.jp/lecture/index-j.html

  • diaspar journal

    No posts. No posts. Home Subscribe to: Posts (Atom)

  • kazkaz diary

    _ [Haskell] hs-dotnet入れた。 PS C:\Users\haskell\hs-dotnet-0.4.0> runghc Setup.hs configure Configuring hs-dotnet-0.4.0... PS C:\Users\haskell\hs-dotnet-0.4.0> runghc Setup.hs build Preprocessing library hs-dotnet-0.4.0... Building hs-dotnet-0.4.0... C:\ghc\ghc-6.10.2\bin\ar.exe: creating dist\build\libHShs-dotnet-0.4.0.a PS C:\Users\haskell\hs-dotnet-0.4.0> runghc Setup.hs install Installing library

  • Haskell基礎文法最速マスター - think and error

    見ていただけるのは嬉しいですがこのエントリは十分古いため、新しい情報へアクセスをしてください。以下のをお勧めします。 すごいHaskellたのしく学ぼう! 作者: MiranLipovaca出版社/メーカー: オーム社発売日: 2017/07/14メディア: Kindle版購入: 4人 クリック: 9回この商品を含むブログを見る 関数プログラミング実践入門 ──簡潔で、正しいコードを書くために (WEB+DB PRESS plus) 作者: 大川徳之出版社/メーカー: 技術評論社発売日: 2014/11/14メディア: 単行(ソフトカバー)この商品を含むブログ (8件) を見る みんなHaskellやろうぜ!! ということで書きました。 CやJavaRubyなど他言語を知っている人は、これを読むことでHaskellの大抵のことはマスターでき…ません。 特殊な構文が多すぎて他言語との類

    Haskell基礎文法最速マスター - think and error
  • 素数判定 - あどけない話

    要約:素数判定に使われるミラーラビン法を解説しながら、Haskell で実装してみる。 フェルマーテスト 大きな数を確実に素数だと判定するには、大変時間がかかるので、実用的には「ほぼ素数だ」と確率的に判定する。確率的な素数判定の代表格がフェルマーテストである。 フェルマーテストには、以下に示すフェルマーの小定理を利用する。 a^p ≡ a (mod p) a は任意の整数。p は素数である。法 p の下で a を p 乗したものは、a と合同であると言う意味だ。a には制限はないが、特に a を p より小さい整数、0 ≦ a ≦ p - 1 とすれば、a を p 乗して、p で割ると a に戻るとも解釈できる。 最初に見たときは、だからどうしたと思われるかもしれない。しかし、有名なフェルマーの大定理が実用上何の役にも立たないのに対し、フェルマーの小定理はいろんな場面で活躍する。 実際に計

    素数判定 - あどけない話
    jjzak
    jjzak 2010/08/24
    要約:素数判定に使われるミラーラビン法を解説しながら、Haskell で実装してみる。
  • asdf-11

    Ruby2.0に切り替えてから、よくエンコード関係のよくわからんエラーで困ってた。 Redpenを使いたいために、ExcelのデータをpandocでMarkdownに変換をして、 整形をしたいだけなのに、、、 まとめられてる方がいたのでリンクをば。 http://www.ownway.info/Ruby/version http://tmtms.hatenablog.com/entry/20120812/ruby_encoding http://techracho.bpsinc.jp/morimorihoge/2013_10_11/14375

  • 手探りの私にもわかる気がしている関数型言語

    13. オブラブと関数型言語(1) 2006/05/17 : 西川による「ゆるーいHaskell」が メルマガにて連載開始 (2008/09/03に全23回にて終了) 2006/12/20 : オブジェクトクラブクリスマスイベントにて 徳井進による講演にて、 「関数型言語とラムダ計算」が話される 14. オブラブと関数型言語(2) 2007/12/21 : オブジェクト倶楽部クリスマスイベントにて オブジェクトの広場さんによる 「OO厨厨トレイン 未来編」内で、 関数型言語これからくるかもよということ が話される 2008/09/24 : オブジェクト倶楽部メールマガジン252号にて 森田による S式でCocoaプログラムが書ける 「Nu」の紹介記事 2008/10/30 : ファンクショナル倶楽部秋イベント開催

    手探りの私にもわかる気がしている関数型言語
  • さあ、Yコンビネータ(不動点演算子)を使おう! - よくわかりません

    前回、おとうさんにもわかるYコンビネータ!(絵解き解説編) - よくわかりませんというエントリで、Yコンビネータ(不動点演算子)と再帰の絵解き解説をしました。 Yコンビネータ自身は、結局のところ再帰を産み出してくれるだけです。関数(正確にはλという単純な文字列変換ルール)だけで出来て、プログラミングに関するいろんな原理の研究を可能にするのが凄い訳です。その辺のさわりを、きしださんが解説されています。しかし、単なる再帰なら、実際のプログラミングではYコンビネータなんて使わなくても出来ます。 じゃあ、Yコンビネータとか不動点とかは、偉い学者さんとかが研究に使えばいいもので、普通のプログラマには何の意味もないモノなのでしょうか? というわけで、今回はポジティブに、Yコンビネータや不動点で出てくる考え方を、理論だけじゃなく、実際のプログラミングに応用する例を見てみましょう。 今回、プログラムの例を

  • おとうさんにもわかるYコンビネータ!(絵解き解説編) - よくわかりません

    先日YコンビネータのきしださんのYコンビネータのエントリが話題になっていました。 ずいぶん日にちが経ってしまいましたが、自分も、自分なりにYコンビネータのあたりを絵解きで整理してみたいと思います。きしださんのエントリタイトル*1に引っ掛けて、目標として、自分の父親(非プログラマ。その辺のおっさん)でも解る内容を目指します。 なぜ不動点演算子というのか、不動点だったらなぜ再帰なのか、この辺りも含めて、実感を持って納得できればいいなと思います。 きしださんのエントリのおさらい 題の前に、きしださんのエントリをおさらいしておきます。 Yコンビネータはただのオモチャじゃないんだよ 関数だけで色んな事が出来る 条件分岐をする関数ってのもある。 再帰(ループ)を作れる関数もある。←これがYコンビネータ。 数値も関数で表現できる。 つまり、関数だけで、条件分岐も、再帰(ループ)も、数値も作れちゃう!!

    おとうさんにもわかるYコンビネータ!(絵解き解説編) - よくわかりません
  • Lua/組み込み - assari

  • 紫藤のページ

    紫藤のページにようこそ! Lisp, Haskell, Python, Sather などの関数型言語の解説、小品プログラムを載せています。 ここでは関数型プログラミング言語をものすごく広い意味で使っており、 手続きをデータとして扱える言語を指します。 (Python, Sather などは普通はオブジェクト指向言語に分類されます。) また、xyzzy のマクロに関するメモもあります。 面白そうな割りに、web 上に文書が少ない題材を取り上げています。 リンクはご自由にお張りください。 更新ログ [Sep 15, 2014](Python) Set を用いたライフゲームの実装 を作成 [Jul 21, 2014]デコレータを用いた bottle.py のアクセスコントロール を作成 [Jul 13, 2014]Maildir のバックアップ を作成 [Jun 28, 2014]自宅サーバの

  • 賢人鳥 - あどけない話

    分かった! 分かった! 分かった! 自己言及 ものまね鳥(M)は、自己言及する鳥なんだ! Haskell では、型推論がジャマして、ものまね鳥を実現できない。 -- Mx = xx m x = x x -- エラーになる ヒバリ(L)も実現できない! -- Lxy = x(yy) l x y = x (y y) -- エラーになる 当然の帰結として、Haskell では再帰を使わないと賢人鳥(Y)を実現できない! 賢人鳥1 wikipediaの Y コンビネーターに書かれている最初の賢人鳥はこう。 (define Y (lambda (f) ((lambda (x) (f (lambda (y) ((x x) y)))) (lambda (x) (f (lambda (y) ((x x) y))))))) これは SLL だ! ;; Sxyz = xz(yz) (define S (lam

    賢人鳥 - あどけない話
  • 正規表現を超える - あどけない話

    まずは、Audrey さんが言った Haskell の殺し文句を思い出して頂きたい。 正規表現ベースのパーサはメンテナンスしにくいのに気づいた? Parsec を使って 15分で Perl6 の完全なパーサを書く方法を勉強しましょう。 15分というのは誇張が入っていると思うが、正規表現が保守しにくく、Haskell の Parsec は強力で保守し易いのは事実だ。その理由を Perl と Haskell のコードを示しながら説明してみたいと思う。 Perl を愛する方に:この記事は Perl を攻撃するために書いたのではない。Perl を選んだのは、正規表現を広めた言語であり、僕がそれなりに Perl のコードを書けるためである。この記事の目的は、正規表現よりも関数型パーサー(Parsec)の方が優れていると示すことだ。 例題 この記事では例題として、IPv4 アドレスを解析する関数を書く

    正規表現を超える - あどけない話
  • Haskellプログラミングの楽しみ方 − @IT

    第1回 Haskellプログラミングの楽しみ方 山下 伸夫 株式会社タイムインターメディア 2008/10/29 関数型言語に分類されるHaskell。C言語などの手続き型言語とまったく異なるプログラミングの世界に踏み出してみよう(編集部) 連載は、Haskellプログラミングの初歩から始めて、日常的なスクリプティングやWebプログラミングをHaskellで楽しめるようになるまでのガイドである。 Haskellプログラミングのスタイル Haskellプログラミングに興味はある人でも、Haskellプログラミングの習得にはちょっとした障壁を感じることがあるのは間違いないようだ。小難しい概念や用語のせいでもあるが、それらはあまり重大な理由ではない。 障壁となるのはHaskellのプログラミングスタイルである。Haskellのプログラミングスタイルは関数プログラミングという系統に属する。一方、

  • HaskellによるWebアプリ - 純粋関数型雑記帳

    http://tanakh.jp/hl/ darcs get http://tanakh.jp/repos/haskellitter/ Haskellでtwitterのようなものを実装しました。 試験的に公開してみます。 皆様利用して感想など頂けると幸いです。 Web2.0的な素敵な背景は、tkngさんに作っていただきました。 ありがとうございます。 全体的なページのデザインは私が適当にポコポコ作ったので、ひどいです。 このシステムは日々の普通な使用にゆるゆると耐えてくれればよいかなと思っておりますが、 最低限のスケーラビリティは考えて設計されております。 投稿データ〜1000万程度まで保持できることを考え、 そのデータに対し現在提供しているあらゆるクエリをノータイムで返すことができます。 投稿、削除、星をつけるなどの操作からランキングをリアルタイムに更新します。 ページはすべてたどること

    HaskellによるWebアプリ - 純粋関数型雑記帳
  • The Theory of Concatenative Combinators

    Brent Kerby (bkerby at byu dot net). Completed June 19, 2002. Updated February 5, 2007. Introduction A Few Combinators: swap, dup, zap, unit, cat, cons, i, dip Lambdas An Abstraction Algorithm The sip Combinator Schemes of Combinators: dign, buryn Another Combinator Scheme: flipn Two More Schemes: dipn, sipn Applicative Combinators: w, k, b, c, s Towards a Minimal Base: {cons, sip, k} A Smaller Ba

    jjzak
    jjzak 2007/08/23
    Concatenativeのコンビネーター
  • らくがきえんじん

    別アカウントに移動しました。 Haskell の型レベルプログラミングによるセッション型の実装 full-sessions を 晒します. くわしくはこちら → http://d.hatena.ne.jp/keigoi/20090622 π計算の型に セッション型というのがあって、そいつを Haskell上に実装して PPL2009 で発表しました。 ソースコードはこちら 発表論文はこちら 気をとりなおして。 Haskell用の C言語のパーザライブラリ Language.C の意味解析機能を使ってみる。 まずはグローバルスコープのシンボルテーブルを表示してみる。 こんなことができる 入力 (sample.c) enum enum1 {x, y, z}; void fundec1(); struct st1 { int a, b; }; typedef struct st2_ { int

    らくがきえんじん
  • http://liskell.org/

  • てきとうなメモ

    Hertzbleed Attack CPUの脆弱性で大きな話かなと思って論文少し読んでみた。が、Q&Aに書かれている通り、すぐに心配すべきものではないという感想。 Should I be worried? If you are an ordinary user and not a cryptography engineer, probably not: you don’t need to apply a patch or change any configurations right now. If you are a cryptography engineer, read on. Also, if you are running a SIKE decapsulation server, make sure to deploy the mitigation described below.

    てきとうなメモ
  • ■[funcgui] GUIで学ぶ関数プログラミングで学ぶGUIアプリケーショ

    あー、あーうあー。家出る前に牛乳を冷蔵庫にしまったかどうか確認すること。 昼間なんか色々考えたような気がしたんだけど、どうでもよくなった。 ので、そういう仕事辞めたくなった話題(またか)とは全然関係無く、関数型言語はGUIアプリケーションも美しく書けるのではないかというような話。 とにかく、Monadっていうのは、コマンドのことだと理解しておく。 main = putStrLn "nanika"こういうのがあった場合、mainというのは"nanika"を表示するコマンドである、とする。端末に対して、「"nanika"を表示するコマンド」を送ると、端末は、"nanika"を表示する。 あと、前も書いたけど、 main = putStrLn "nanika" >> putStrLn "are"コマンドは繋げてもコマンド。と、いうのが重要。 そこまで頭に入れておいて、まず、GUIアプリケーション

    ■[funcgui] GUIで学ぶ関数プログラミングで学ぶGUIアプリケーショ