2009-05-01から1ヶ月間の記事一覧

Haskell で Basic 認証

Basic 認証 の必要なアクセスをAuthentication.hsを参考に動かしてみた。 import Codec.Binary.Base64.String import Network.HTTP import Network.URI -- Sends an HTTP request to a server identified by uri. -- The username and password are sent wit…

Web のテキストを取得

import Network.Browser import Network.HTTP get url = do rsp <- simpleHTTP (getRequest url) fmap (take 300) (getResponseBody rsp) PS C:\Users\haskell> ghci GHCi, version 6.10.2: http://www.haskell.org/ghc/ :? for help Loading package ghc-pr…

Haskell から Ruby を呼ぶ

System.Win32.Com の使い方が分らないので「趣味的にっき / ] iconvを外部プロセスとして呼び出して漢字コードを変換する」を参考に RubyからCOMを呼んで、そのRubyをHaskell から呼ぶことにしました。 module Main (main) where import System import Syste…

System.Win32.Com の使い方を知りたい

Windows COM は全く分からないのですが、Ruby の win32ole は使ったことがあるので、win32ole.c を追ってみます。 > ghci GHCi, version 6.10.2: http://www.haskell.org/ghc/ :? for help Prelude> :m +System.Win32.Com Prelude System.Win32.Com> coIniti…

Windows 開発環境構築(3) Cinnamon.Nkf が動いた

(2)はbuild は出来たがインストール出来ない・・・まででした。 インストールが出来ないのはライセンスファイルの問題。そこで、正常にインストール出来たcabalのライセンスの行をコピー。 ライセンスファイルもそのファイルをコピーすると入ったけれど、ラ…

√2 を計算してみた

ザリガニが見ていた...。√2や円周率πの驚きを参考にHaskell の練習に√2 を計算してみました。 {- 1 2 5 12 29 70 169 408 985 ... 次の数を求めるには、今の数を2倍して、前の数を足す。 例:5の次は... 5 × 2 + 2 = 12 √2 ≒ 408 ÷ 985 + 1 = 1.4142131979 -…

URL特殊文字のエスケープ

どう書く?org (URL特殊文字のエスケープ)を動かしてみる。 module Main (main) where import Network.URI import Codec.Binary.UTF8.String (encodeString,decodeString ) import qualified System.IO.UTF8 as U -- Haskell String を UTF-8 フォーマットの…

Windows 開発環境構築(3)

Windows PowerShell で nkf を使用すると正常に動作しない。DOS窓ならおk。 Windows PowerShell PS D:\haskell> echo "ウィキペディア" ウィキペディア PS D:\haskell> echo "ウィキペディア"|nkf -w ??????? PS D:\haskell> echo "ウィキペディア"|nkf -g …

URL特殊文字のエスケープについて整理しておく

Haskell の CGI がうまく動かないので Ruby を使用して URL特殊文字のエスケープについて整理しておきます。 irb(main):004:0> URI.escape("あ") => "%E3%81%82" irb(main):008:0> uri=URI.escape("あ") => "%E3%81%82" irb(main):011:0> URI.unescape uri =…

cabal コマンドによるインストール

今まで wget http://xxxxxxxxxxxxxxxx tar xf xxxxxxxxx cd xxxxxxxxx rughc Setup.hs configure rughc Setup.hs build sudo rughc Setup.hs installってやっていたよ。・・・Orz $ sudo cabal install utf8-string 'utf8-string-0.3.4' is cached. Configur…

Windows 開発環境構築(2):cinnamon-0.2 インストールメモ

cinnamon-0.2 をインストールしようとしたメモ。iconv では挫折したので cinnamon-0.2。 > runghc Setup configure Configuring cinnamon-0.2... Warning: No 'build-type' specified. If you do not need a custom Setup.hs or ./configure script then use…

Windows 開発環境構築(1)

hdn:開発環境構築を参考にして、っていうか真似して開発環境の構築。 reimp : MSのツールで作ったライブラリを mingw32、cygwin から使えるようにするためのツールらしい。iconv.def を作るのに使う。mingw-utils に含まれている。 libiconv を Windows の D…

iconv.dll ファイルの読み込みに失敗する・・・Orz

> ghci GHCi, version 6.8.3: http://www.haskell.org/ghc/ :? for help Loading package base ... linking ... done. Prelude> :m + Data.ByteString.Lazy Prelude Data.ByteString.Lazy> :m + Codec.Text.IConv Prelude Data.ByteString.Lazy Codec.Text.I…

iconv インストールでエラー発生。

iconv をインストールしようとしてエラー発生。ghc-6.8.1 は問題なし。問題を確認したバージョン。 6.10.1、6.10.2 $ runghc Setup.hs configure Configuring iconv-0.4.0.2... $ runghc Setup.hs build Preprocessing library iconv-0.4.0.2... Building ic…

Haskell で漢字コード変換

どう書く?orgの例を実行してみた。 $ cat sjis2euc.hs import Data.ByteString.Lazy as B import Codec.Text.IConv -- "UTF-8" or "LATIN1" sjis2eucjp :: ByteString -> ByteString sjis2eucjp = convert "SHIFT-JIS" "EUC-JP" main :: IO () main = B.inte…

Haskell の入出力

Haskell は遅延評価を行う純粋関数型言語です。値が実際必要になるまではプログラムは実行されませんから、実行する順序は保証されないのです。 入出力のときに実行する順序が保証されないとデータがバラバラになって困ります。ですから、実行する順序を保証…

日本語を含むソースをコンパイル

日本語を扱うのに問題はないが、日本語を含むソースをコンパイルするとエラーになる。utf8-string パッケージのSystem.IO.UTF8を使えばOK。 module Main where import qualified System.IO.UTF8 as U main = do U.putStrLn "あいうえお" $ ghc --make japane…