タグ

ブックマーク / satosystems.hatenablog.com (4)

  • Haskell と SDL - satosystemsの日記

    この記事は Haskell Advent Calendar 2014 の 8 日目の記事です。 Haskell で SDL を利用してゲーム的な何かを作成するための入門記事です。 環境構築(Haskell Platform) Haskell の開発環境は Windows/Mac/Linux いずれでも構築可能です。僕は普段は Haskell のコーディングは Linux、特に Ubuntu 14.04 を使用することが多いですが、今回は Mac を選択しました。 Haskell Platform は最新を使用します。僕の Mac には少し古いバージョンが入っていたので: $ ghc --version The Glorious Glasgow Haskell Compilation System, version 7.6.3 以下のコマンドで何がアンインストールされるかを確認し: $ un

    Haskell と SDL - satosystemsの日記
  • Haskell で XML と JSON をパースする方法 - satosystemsの日記

    調査がひと段落ついたので冒険の書にセーブ。 XML のパース Haskell の XML パーサは結構種類が豊富です。 Which Haskell XML library to use? - Stack Overflow によると、 xml: 処理が簡単なら haxml: 処理が複雑なら hxt: 矢印が好きなら hexpat: パフォーマンスを望むなら ということらしく、僕は xml を選択しました。 インストールは以下の要領で行います。 cabal update cabal install xml サンプルのお題は、以下のような XML から、タプルのリストで言語とメッセージを取り出すこと。 <?xml version="1.0" encoding="utf-8"?> <root> <greeting> <language>English</language> <message>hel

    Haskell で XML と JSON をパースする方法 - satosystemsの日記
  • Prolog の紹介 - satosystemsの日記

    フィボナッチで各種言語をベンチマーク - satosystemsの日記 で Prolog のフィボナッチを以下のように実装しました。 fib(0, 0). fib(1, 1). fib(N, NF) :- A is N - 2, B is N - 1, fib(A, AF), fib(B, BF), NF is AF + BF. goal :- fib(38, NF), write([NF]), nl. アルゴリズムがなんだか全くわからなかったのでリベンジしたところ、意味がわかるようになったので、メモを兼ねて皆さんに紹介します。 そもそも Prolog とは Prolog は手続き型言語ではなく、論理型言語です。 プログラミング言語 宣言型言語 関数型言語 論理型言語 制約論理プログラミング言語 並行論理プログラミング言語 並行制約プログラミング言語 論理プログラミング - Wikiped

    Prolog の紹介 - satosystemsの日記
    xef
    xef 2013/03/29
  • フィボナッチで各種言語をベンチマーク - satosystemsの日記

    AWK、Ada、Bash、Boo、C、C#、C++、Clojure、D、Erlang、Forth、Fortran、Go、Groovy、Haskell、Io、JavaJavaScript、Lisp、Lua、OCaml、Objective-C、PHP、Pascal、Perl、Pike、PrologPython、R、RubyScala、Scheme、Smalltalk、Tcl でフィボナッチ数を求める処理時間を計測してみました。 フィボナッチ数は漸化式で求められます。 F0 = 0 F1 = 1 Fn+2 = Fn+1 + Fn フィボナッチ数を求めるアルゴリズムはいろいろありますが、今回は以下の再帰で求めるアルゴリズムで統一しました。 #include <stdio.h> int fib(int n) { if (n < 2) return n; return fib(n - 2) +

    フィボナッチで各種言語をベンチマーク - satosystemsの日記
  • 1