あいさつ 今日は鼻ピアスを鼻くそみたいにつけられてる方を見ました. (いやこれがマジで) HaskellのコードをRubyから文字列で渡して別スレッドでコンパイルしてRubyの文字列で取得するというGemです. (動的にHaskellのコードを生成出来る!) 前面白がって「実行時にゆるふわ型をチェックするHaskellというGem」を作りましたが、ちょっとアレだったのでRubype に名称を変更し、Haskellという方にはサクッとネタGemをぶち込んでおきました. Giuhub (僕が粛々とやっている麻布.hsのプロジェクトとして作りました!麻布にゆかりのあるHaskellerは是非!) Rubygems 様子 require 'haskell' # Haskellをコンパイルするためのサンドボックスを作る Haskell.invoke_sandbox!(File.expand_path
『ふつうのHaskellプログラミング』 の第3章を参考にして map 関数を mymap という関数名で作ってみた。 mymap 関数の引数に square 関数と整数のリストを渡す例のソースコード。 $ cat ./mymap.hs main = print $ mymap square [1, 2, 3] square n = n * n mymap :: (a -> b) -> [a] -> [b] mymap f [] = [] mymap f (x:xs) = f x : mymap f xs 実行結果。 $ runghc ./mymap.hs [1,4,9] tags: haskell Posted by NI-Lab. (@nilab)
$Id: index.html,v 1.9 2006/06/01 16:35:13 aamine Exp $ [ 正誤表 | 書誌情報 | 詳細目次 ] [ SBCr | Amazon ] リスト処理・文字列処理の基礎からモナド、パーサコンビネータまで。 ふつうのプログラマに贈る関数型言語入門。 サポート情報 正誤表 GHC 6.4.2 のダウンロード [www.haskell.org] LazyLines のダウンロードとインストール サンプルコード (オンライン) サンプルコードのダウンロード (.zip) サンプルコードのダウンロード (.tar.gz) リファレンスマニュアル検索ツール href 質問や間違いの指摘などはメールで aamine AT loveruby.net (AT は @ に置き換え) までお願いします。 書誌情報 書名
『ふつうのHaskellプログラミング』 の第2章を参考にして wc コマンドっぽいのを書いてみた。 ソースコード。標準入力を読み込んで、行数、単語数、文字数をカウントするプログラム。 $ cat ./mywc.hs main = do hoge <- getContents print $ countlines hoge print $ countwords hoge print $ countchars hoge countlines x = length $ lines x countwords x = length $ words x countchars x = length x 読みこませるテキストファイル。 $ cat ./a.txt This is a pen. これはペンです。 プログラムを実行。mywc の標準入力にテキストファイルをリダイレクトで接続する。 $ run
『ふつうのHaskellプログラミング』 の第2章を参考にして cat コマンドっぽいのを書いてみた。 ソースコード。標準入力を読み込んで、標準出力へ出力するプログラム。 $ cat ./mycat.hs main = do hoge <- getContents putStr hoge コンパイル。 $ ghc ./mycat.hs 読みこませるテキストファイルの中身。 $ cat ./a.txt aiueo kakikukeko さしすせそ 太刀伝手都 実行。mycat の標準入力にテキストファイルをリダイレクトで接続する。 $ ./mycat < ./a.txt aiueo kakikukeko さしすせそ 太刀伝手都 tags: haskell Posted by NI-Lab. (@nilab)
書籍 『ふつうのHaskellプログラミング』 の第一章を参考に Hello World してみた。 Haskell の処理系 ghc (Glasgow Haskell Compiler) を Mac OS X Lion にインストール ソースコードからインストールしようとするとはまりやすいらしいので、おとなしく Homebrew でインストール。 $ brew install ghc $ which ghc /usr/local/bin/ghc ghc, runghc, ghic プログラムの実行には以下の3つが使える。 - コンパイラ: ghc - インタプリタ: runghc - 対話型インタプリタ: ghci ghc でコンパイルして Hello World を実行 ソースコード。 $ cat ./hello.hs -- my first Haskell program main
Haskell は高階関数や静的多相型付け、定義可能な演算子、例外処理といった多くの言語で採用されている現代的な機能に加え、パターンマッチングやカリー化、リスト内包表記、ガードといった多くの特徴的な機能を持っている。また、遅延評価や再帰的な関数や代数的データ型もサポートしているほか、独自の概念として圏論のアイデアを利用し参照透過性を壊すことなく副作用のある操作(例えば 代入、入出力、配列など)を実現するモナドを含む。このような機能の組み合わせにより、手続き型プログラミング言語では記述が複雑になるような処理がしばしば簡潔になるばかりではなく、必要に応じて手続き型プログラミングを利用できる。 Haskell は関数型プログラミングの研究対象として人気が高い。あわせて Parallel Haskell と呼ばれるマサチューセッツ工科大学やグラスゴー大学によるものをはじめ、他にも Distribu
モナドのすべて Haskell におけるモナドプログラミングの理論と実践に関する包括的ガイド Version 1.1.0 このチュートリアルは、モナドの概念とその関数プログラミングにおける応用に ついて、初中級の Haskell プログラマにわかりやすく、利用価値があるような 解説をすることを旨としています。読者は Haskell になれていることを前提と しますが、モナドに関する経験は要求していません。このチュートリアルは、多 くの題材をカバーしています。後半のセクションでは、前半の題材をよく理解し ていることを前提とします。順をおって、モナドプログラミングを例示するため のサンプルコードがたくさん用意されています。一読で、すべての題材を吸収し ようというのはお勧めできません。 このチュートリアルは 3 つの部分で構成されています。最初の部分は、 関数プログラミングにおけるモナドの基本的
「連載: Haskellプログラミング」のプログラム $Date: 2006/06/09 15:06:12 $ 記事は情報処理学会のページ http://www.ipsj.or.jp/magazine/promenade.html で見ることができます.
Paul Hudak, Yale University John Peterson, Yale University Joseph Fasel, Los Alamos National Laboratory September 28, 1999 翻訳:山下 伸夫 <nobsun@sampou.org> これは、「やさしい Haskell 入門 (バージョン98)」のHTMLバージョンです。 目次要約 イントロダクション 値、型、その他の有用な概念 関数 case 式とパターン照合 型クラスとオーバローディング 再び、型について 入出力 標準の Haskell クラス モナド 数 モジュール 型付けの落し穴 配列 この先の学習 参考文献 目次 このHaskell Tutorialのマスター文書は、 haskell.orgにあります。このレポー トの訂正や変更はすべてそこに反映されるようになっ
会誌「情報処理」連載の「プログラム・プロムナード」(2002年4月〜2005年3月掲載)と「Haskellプログラミング」(2005年4月〜2006年3月掲載)はどなたでもご覧になれます。ファイルはすべてPDF形式です。 「Haskellプログラミング」に掲載されたプログラムは http://www.sampou.org/haskell/ipsj/ から取ることができます.
Haskell は関数型プログラミング言語の”標準語”として、1990 年に 誕生 (Haskell 1.0) した比較的新しい言語です。 その後、1999 年に安定した言語定義 Haskell 98 が制定され、 徐々に知名度が高くなっています。 しかし、まとまった日本語の解説がほとんど無いので、 簡単な解説記事を書いてみました。 目次 Haskell とは プログラムを動かす 関数を定義する 型 入出力 Haskell で最小二乗法 自前の data と class Monad 探索 種々のデータ構造 Module 詰碁を解く
筆者 shelarcy Haskellは,関数型プログラミングというジャンルに属する言語です。Haskellや関数型プログラミングを題材に物事を見ていくことで,今まで思いもよらなかったような未知の世界を知ることができるでしょう。 プログラミング言語を学ぶという行為には, 言語の基本的な文法や考え方を理解する 言語の文化圏で広く使われている考え方に親しんでその言語らしい書き方を習得する 単に言語を使ってできること以上の知恵を学ぶ の3段階があります。この連載では,三つ目の段階を目標に,Haskellプログラミングの世界を一つひとつ丁寧に紹介していきます。 更新は毎月第1水曜日(1月のみ第2水曜日)
Haskellというプログラミング言語を知っていますか? 全く聞いたことがないという人が多いかもしれません。そういう名前の言語があるのは知っているけど,どんな言語かは知らないという人もいるかもしれませんね。でも最近では,一部の先進的なソフトウエア開発者の間で,一種のブームと言えるほど熱狂的に受け入れられています。 なぜならば,Haskellは様々な優れた特徴を持っているからです。最初に,他の言語にはあまり見られない際だった特長を一つだけ紹介してみましょう。「遅延評価(lazy evaluation,怠惰評価ともいう)」です。 遅延評価とは,与えられた値を必要になるまで評価(計算)しないということです。この性質により,不必要な計算が行われる無駄をなくすことができます。また,「潜在的に無限の大きさを持つデータ構造」といった通常のプログラミング言語では扱いの難しいものを直接扱えるため,より直接的
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く