タグ

ProgrammingとHaskellに関するagwのブックマーク (41)

  • Executing Haskell program

    2. プログラムを動かす この文章では Haskell プログラムを実行する手順を紹介します。 1. Haskell プログラムの書式 Haskell のプログラムには通常の書式と、コメントとコードが入れ替わった リテラル形式の2つがあります。通常の書式のファイルの拡張子は *.hs リテラル形式の拡張子は *.lhs として区別します。区別しないと 処理系が混乱して、文句を言ってきます。 1.1. 通常の書式 通常の書式は以下の通りです。 01: -- Say hello 02: module Main where 03: import System 04: 05: main = do av <- getArgs 06: putStrLn $ "Hi, " ++ (av !! 0) ++"!" 図1:hi.hs [1] -- から行末まで、および {- から -} までは コメントです。

  • Amazon.co.jp: プログラミングHaskell: Graham Hutton (著), 山本和彦 (翻訳): 本

    Amazon.co.jp: プログラミングHaskell: Graham Hutton (著), 山本和彦 (翻訳): 本
  • Graham Hutton著、山本和彦訳「プログラミングHaskell」: ホットコーナー

    ブログ(iiyu.asablo.jpの検索) ホットコーナー内の検索 でもASAHIネット(asahi-net.or.jp)全体の検索です。 検索したい言葉のあとに、空白で区切ってki4s-nkmrを入れるといいかも。 例 中村(show) ki4s-nkmr ウェブ全体の検索 ASAHIネット(http://www.asahi-net.or.jp )のjouwa/salonからホットコーナー(http://www.asahi-net.or.jp/~ki4s-nkmr/ )に転載したものから。 --- 今年ももう12月になっちゃったよ~。早く書かないと、今年が終わっちゃ うよ~ということで、がんばって書く。 http://iiyu.asablo.jp/blog/2009/11/20/4707070 Haskellナイト、Graham Hutton著、山和彦訳「プログラミングHaskell

  • プログラミングHaskellの裏舞台 - あどけない話

    中村正三郎さんがプログラミングHaskellの書評を書いてくれましたので、触発されて少し補足します。 訳について 直訳を避け、意訳する 訳は、直訳を避け意訳を心がけました。原文が想像できない自然な日語を目指しています。たとえば、章のはじめには必ずこういう表現があります。 We conclude with ... これを この章を ... で終える と訳すと原文が想像できますし、自分がを書く場合はこんな表現は使わないので不自然です。 この章を ... で締めくくる とすると、少しはよくなりますが、まだ英語に影響されています。というわけで、こういう訳にしました。 この章の締めくくりとして...を説明する カタカナを使わず、和語を使う カタカナで説明した気になっている人は説明が下手だと僕は思っています。これは口頭での説明でも、文章でも同じです。文章を読まずに、訳の質を判断するには、カタカナの

    プログラミングHaskellの裏舞台 - あどけない話
  • Haskell とは

    1. Haskell とは Haskell は遅延評価を基とする、純粋な関数型プログラミング言語です。 Haskell は簡単なことと難しいことが入れ替わったような言語で、 IO などの普通の言語ではなんでもないことが難しく、探索、構文解析などの むずかしいことが比較的簡単に出来ます。 Haskell は純粋な関数型なので、代入に伴うバグを気にしないですみます (参照透明性があるといいます)。また、 値は必要になって初めて求められるので、無限の大きさをもつデータを扱うことが出来ます。 例えば、奇数の最初の3つが欲しいときは take 3 [1,3..] と書くことが出来ます。 遅延評価を行わない普通のプログラミング言語では、途中に無限ループがあると そこで止まってしまいますが、Haskell の場合は必要な値だけを計算して、 最後まで実行してくれます。 Haskell のプログラムは、値

  • Haskell のお勉強

    Haskell は関数型プログラミング言語の”標準語”として、1990 年に 誕生 (Haskell 1.0) した比較的新しい言語です。 その後、1999 年に安定した言語定義 Haskell 98 が制定され、 徐々に知名度が高くなっています。 しかし、まとまった日語の解説がほとんど無いので、 簡単な解説記事を書いてみました。 目次 Haskell とは プログラムを動かす 関数を定義する 型 入出力 Haskell で最小二乗法 自前の data と class Monad 探索 種々のデータ構造 Module 詰碁を解く

  • Emacs | Haskell | kahua-web

    Chat (Lingr.com) Informaiton コンセプト 注意事項 About Us メーリングリスト コメントの入力方法 RSSの配信 Daily 今日の一行(2008-10-10) Column MySQL語の旅(5/1) 一風変ったHaskellλ門(6/13) SICP Answer Book (5/31) 問題3.26追加 Zope Solution Zope3 幕の内 Zopeとは なぜZopeなのか Extra JavaCube 電気の使えるカフェ情報(1/8) アーカイブ Project Looking Glass XPで楽しい人生を OSS案内所 書籍の紹介 技術者のブックマーク 読書会、勉強会 Site Info Recent Changes アクセス統計情報 関連リンク Emacs の haskell-mode Emacs を使って Haskell で

  • The Haskell Cabal | Overview

    The Haskell Cabal | Overview Cabal: Common Architecture for Building Applications and Libraries Introduction Cabal is a system for building and packaging Haskell libraries and programs. It defines a common interface for package authors and distributors to easily build their applications in a portable way. Cabal is part of a larger infrastructure for distributing, organizing, and cataloging Haskell

    The Haskell Cabal | Overview
  • フロントページ - DarcsWiki

    with cabal: cabal install darcs with stack: stack install darcs Nix (unstable): nix-env -iA nixpkgs.darcs Darcs binaries for many platforms (not up to date though) current release source tarball Darcs is a free and open source, cross-platform version control system, like git, mercurial or svn but with a very different approach: focus on changes rather than snapshots. Darcs offers a freer way of wo

  • Emacs - HaskellWiki

  • Glasgow Haskell Compiler — The Glasgow Haskell Compiler

    Latest News 3 May 2025 GHC 9.10.2 Released! [download] 24 Mar 2025 GHC 9.6.7 Released! [download] 14 Mar 2025 GHC 9.12.2 Released! [download] What is GHC? GHC is a state-of-the-art, open source compiler and interactive environment for the functional language Haskell. Highlights: GHC supports the entire Haskell 2010 language plus a wide variety of extensions. GHC has particularly good support for c

  • Haskellプログラミングの楽しみ方 − @IT

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

  • Pythonのfor-else - 考える人、コードを書く人

    みんなのPython熟読中。ジェネレータの解説に出てきたコードでおもいっきりハマった。 #エラトステネスのふるい def get_prime(x=2): while True: for i in range(2,x): if x % i == 0: break else: yield x x += 1 i = get_prime() for c in range(5): print i.next()↑をパッと見たときelseのインデント位置に違和感があったので↓の間違いだろうと思って 書き直して実行してみたらおかしなことになった。 def get_prime(x=2): while True: for i in range(2,x): if x % i == 0: break else: yield x x += 1 i = get_prime() for c in range(5): p

    Pythonのfor-else - 考える人、コードを書く人
    agw
    agw 2009/11/20
    むしろHaskellに興味が湧くコメント。
  • 麻薬のようなゲーム「立体ピクロス」 - imHo

    最近はずっと立体ピクロスに時間を取られて困ってる。 立体ピクロス 立体ピクロスposted at 09.05.20任天堂 (2009-03-12) 売り上げランキング: 76 おすすめ度の平均: はまります。 ハマります! さすが任天堂 さすがHAL研 ハマリました! 任天堂はゲーム質を熟知している Amazon.co.jp で詳細を見る 名前の通りなんだけど、2次元のピクロスとは違って数字は各列に対してあっても1個だけで、数字がある場合はブロックを連続して残すか、2つに分けるか、3つ以上に分けるか、という指定があってそれを解くと立体物ができあがるというもの。 まだ中級の最初のところだけど、複雑な先読みはほとんどなくて列の数字に当てはまる入り方をきっちりこなしていけば解ける作業ゲーなんだけど、これが恐ろしく中毒性が高い。問題がすごく良くできてて「これはヒントが少なすぎて解けないんじゃ?

    麻薬のようなゲーム「立体ピクロス」 - imHo
  • 遅延評価とIO - あどけない話

    僕は今、プログラマーとしての幸福感に満たされている。遅延評価を習得できたと思えるからだ。 遅延評価 なぜ関数プログラミングは重要かには、遅延評価の利点を以下のように説明している。 停止条件はループの体とは切離すことができ、強力なモジュール化が可能となる。 例として載っている「ニュートン-ラプソン法による平方根」は、若干難しいので、簡単な別例を示そう。Haskell には、第一引数の数だけ、第二引数を繰り返す関数 replicate がある。 > replicate 3 'a' → "aaa" これを普通に実装するとこうなる。 replicate 0 c = [] replicate n c = c : replicate (n-1) c Haskell 以外で実装する場合、きっとループを使うだろう。ただ、ここでは再帰かループかは問題ではない。 問題は、「結果を作る仕事」と「終了条件を判断

    遅延評価とIO - あどけない話
  • Python における関数型プログラミング のための functools, itertools (1) – Haskell と同じ名前の関数たち

    1. 関数型プログラミングのための functools, itertools モジュール Python 2.7 Python の標準ライブラリには、関数型プログラミングにとって重要なモジュールがある。 9.7. itertools — Functions creating iterators for efficient looping 9.8. functools — Higher-order functions and operations on callable objects itertools, functools は、 The Python Standard Library — Python v2.7.3 documentation 9. Numeric and Mathematical Modules の階層の中にある。 9. Numeric and Mathematical

    Python における関数型プログラミング のための functools, itertools (1) – Haskell と同じ名前の関数たち
  • 本物のプログラマはHaskellを使う:ITpro

    筆者 shelarcy Haskellは,関数型プログラミングというジャンルに属する言語です。Haskellや関数型プログラミングを題材に物事を見ていくことで,今まで思いもよらなかったような未知の世界を知ることができるでしょう。 プログラミング言語を学ぶという行為には, 言語の基的な文法や考え方を理解する 言語の文化圏で広く使われている考え方に親しんでその言語らしい書き方を習得する 単に言語を使ってできること以上の知恵を学ぶ の3段階があります。この連載では,三つ目の段階を目標に,Haskellプログラミングの世界を一つひとつ丁寧に紹介していきます。 更新は毎月第1水曜日(1月のみ第2水曜日)

    本物のプログラマはHaskellを使う:ITpro
  • HaskellとGaucheの普及目指す「HOP推進プロジェクト」,イベントや有償サポート提供へ

    タイムインターメディアは2008年8月5日,次世代プログラミング言語「Haskell(ハスケル)」および「Gauche(ゴーシュ)」の普及を目的とした「HOP(Higher-Order Programming:高階プログラミング) 推進プロジェクト」を開始すると発表した。利用促進イベントの開催や開発ツールの開発提供,コンサルティング・サービスを提供する。 Haskellは関数型と呼ばれるプログラミング言語。JavaCOBOLなどがプログラムを手続きの集積として記述するのに対し,Haskellではプログラムを関数の集積として記述する(関連記事:連載「物のプログラマはHaskellを使う」)。Haskellで実装されたアプリケーションには,Perl6の実装であるPugsや分散バージョン管理システムのdarcsなどがある。 Gaucheはハワイ在住の技術者である川合史朗氏が開発したSchem

    HaskellとGaucheの普及目指す「HOP推進プロジェクト」,イベントや有償サポート提供へ
  • 注目ワード“高階プログラミング”って何だ? (1/2)

    オープンソースソリューションを扱う技術系企業 タイムインターメディア(以下TIM)が、「HOPプロジェクト」を開始した。HOPとは、Higher-Order Programming=高階プログラミングを略した言葉。HOPプロジェクトは、TIMの高階プログラミングにおける技術力を背景に、技術コンサルなどを行っていくプロジェクトだ。 そもそも高階プログラミングとは何なのか? まず、具体的に使用するツールは、関数型言語と呼ばれる「Haskell」や、「Gauche」、そしてGaucheを使って作られたアプリケーションサーバフレームワークの「Kahua」となる。HOPプロジェクトの推進役であるTIM 山下伸夫氏に、高階プログラミングとは何か? を聞いた。 山下伸夫氏(以下山下氏) Webサービスも何でもそうですが、スクラッチから組むことはありません。フレームワークを使うわけですが、そのフレームワー

    注目ワード“高階プログラミング”って何だ? (1/2)
  • 第1回 関数型プログラミングの世界へようこそ - 本物のプログラマはHaskellを使う:ITpro

    Haskellというプログラミング言語を知っていますか? 全く聞いたことがないという人が多いかもしれません。そういう名前の言語があるのは知っているけど,どんな言語かは知らないという人もいるかもしれませんね。でも最近では,一部の先進的なソフトウエア開発者の間で,一種のブームと言えるほど熱狂的に受け入れられています。 なぜならば,Haskellは様々な優れた特徴を持っているからです。最初に,他の言語にはあまり見られない際だった特長を一つだけ紹介してみましょう。「遅延評価(lazy evaluation,怠惰評価ともいう)」です。 遅延評価とは,与えられた値を必要になるまで評価(計算)しないということです。この性質により,不必要な計算が行われる無駄をなくすことができます。また,「潜在的に無限の大きさを持つデータ構造」といった通常のプログラミング言語では扱いの難しいものを直接扱えるため,より直接的

    第1回 関数型プログラミングの世界へようこそ - 本物のプログラマはHaskellを使う:ITpro