[SIMILAR] WITH 50119 sqlvalue WITH 26885 unfoldm WITH 22494 selectid WITH 22494 formatrow WITH 22494 formatcolumn WITH 19644 stmt WITH 18928 cgimain WITH 18816 rows WITH 14319 qualified WITH 12660 import WITH 8326 process WITH 7748 textnewcgi WITH 7748 readinput WITH 7748 handlesqlerror WITH 7748 fetchrow WITH 7438 httpequiv WITH 7438 thetitle WITH 7438 sqlstring WITH 7323 renderhtml WITH 7159 cgiresult WITH 7000 nothing WITH 6955 connectodbc WITH 6907 handleerrors WITH 6812 setheader WITH 6721 prepare WITH 6676 newcgi WITH 6548 monad WITH 6527 where WITH 6198 bracket WITH 6162 hdbc WITH 5958 conn WITH 5926 disconnect の検索結果 50 件中 1 - 10 件目 (0.586329054 秒)
Invalid TextNewCGIはCGIモナドで、DBのアクセスはIOモナドの中で行われるので、もはや関数型というよりは単なる手続き型にしか見えません… import Control.Monad.Trans import Data.Maybe import qualified Database.HDBC as DB import qualified Database.HDBC.ODBC as ODBC import IO import Network.NewCGI ...
HSQL-1.7を使ってMySQL 5.0.24に接続してみるテスト。 module Main where import IO import qualified Database.HSQL as DB import qualified Database.HSQL.MySQL as MySQL host = "localhost" db = "test" user = "root" password = "password" main :: IO () main = process `DB.catchSql` print where proc ...
# (スコア:3073)
Haskellにはバイナリを読み書きする時に使えるBitSyntaxというライブラリがあります。rubyで言うところのpackとかunpackに近いでしょうか。パースする時には返り値の型が引数に依存するので、その部分のコードはTemplate Haskellになっています。例えば、tzfile形式のファイルをパースするならこんな感じになり ...
# (スコア:2350)
main :: IO () main = runCGI (handleErrors cgiMain) を、 main :: IO () main = runFastCGIorCGI (handleErrors cgiMain) にすると、CGIとしてもFastCGIとしても動くようになります。 ...
# (スコア:2089)
HDBC-1.0.1.0を使ってMySQL 5.0.24に接続するテスト。HDBCにはMySQLのドライバが無いので、unixODBCを使ってODBC経由で接続します。 unixODBCは2.2.11、mysql-connector-odbcは3.51.12、HDBC-ODBCは1.0.1.0を使います。 import IO import qualified Database.HDBC as DB import qualified Database.HDBC.ODBC a ...
# (スコア:2018)
{-# OPTIONS_GHC -fallow-overlapping-instances #-} import Network.NewCGI main :: IO () main = runCGI (handleErrors cgiMain) cgiMain :: CGI CGIResult cgiMain = do setHeader "Content-Type" "text/plain; charset=us-ascii" output "Hello, world!" ちなみに、NewCGIには以下のパッチを当てないとビル ...
# (スコア:1964)
キーと値からなる設定ファイルをパースするとします。設定ファイルはこんな感じです。 name=Test value=5 マップなどで値を持つという方法もありますが、ちゃんと型付けするために専用の型を用意することにします。そうするとパースするコードはこんな感じでしょうか。 import Control.Monad import Data.Maybe ...
# (スコア:1816)
上の例だと、GADTを使っても同じような事ができます。 {-# LANGUAGE GADTs #-} import qualified Data.Sequence as Seq data Vector a where BoolVector :: [Bool] -> Vector Bool IntVector :: Seq Int -> Vector Int add :: a -> Vector a -> Vector a add v (BoolVector l) = BoolVector $ v:l add v (IntVe ...
# (スコア:1751)
mod_rewriteで以下のようなルールを定義してパスをクエリパラメータに置き換えたとします。 RewriteRule ^(.*)$ test.cgi?value=$1 [L] ここで、http://example.com/Test%2BTestにアクセスするとCGI側からvalueの正しい値が取れず、「Test Test」になってしまいます。これは、mod_rewriteがマッチさせる前にURL ...
# (スコア:1639)
少し趣を変えてGLSLを使って書いたシェーダーを使う方法です。 シェーダーを使うには、頂点シェーダーとフラグメントシェーダーをコンパイルしてから、プログラムオブジェクトにアタッチし、そのプログラムオブジェクトをリンクして使います。実際に描く時には、vertexAttribPointerで頂点の属性を設定して頂点 ...
# (スコア:1480)
# (スコア:10000)