Nobuo Yamashita @nobsun モナドの話をするときに副作用への言及は不要だと思います。もし言及するなら、定義を明示していただけると嬉しいなぁ。それと記述対象の性質についてなのか、記述言語の性質なのかを是非区別してもらえると混乱しなくていいなぁ。と思います。
![[FAQ]Haskellには副作用があるのか、ないのか](https://cdn-ak-scissors.b.st-hatena.com/image/square/e8b5f753587db45b02829cec4e07adc72278f3df/height=288;version=1;width=512/https%3A%2F%2Fs.tgstc.com%2Fogp3%2Fc0d19d917305257561516bc192e7eb90-1200x630.jpeg)
見ていただけるのは嬉しいですがこのエントリは十分古いため、新しい情報へアクセスをしてください。以下の本をお勧めします。 すごいHaskellたのしく学ぼう! 作者: MiranLipovaca出版社/メーカー: オーム社発売日: 2017/07/14メディア: Kindle版購入: 4人 クリック: 9回この商品を含むブログを見る 関数プログラミング実践入門 ──簡潔で、正しいコードを書くために (WEB+DB PRESS plus) 作者: 大川徳之出版社/メーカー: 技術評論社発売日: 2014/11/14メディア: 単行本(ソフトカバー)この商品を含むブログ (8件) を見る みんなHaskellやろうぜ!! ということで書きました。 CやJava、Rubyなど他言語を知っている人は、これを読むことでHaskellの大抵のことはマスターでき…ません。 特殊な構文が多すぎて他言語との類
いろいろ試行錯誤をしていて JavaScript の関数を作って呼び出すのと Haskell のそれとの決定的な違いを見つけた。 それは、たぶんものすっごい単純で当たり前なことだけど、これが分かったとたんに僕の周りのピースが一気に繋がったので、恥をしのんで書く。 僕は以下のように脳内変換していて Haskell a = 1 iszero i = if (i == 0) then True else False Javascript a = function() { return 1 } iszero = function(i) { return i()/*評価は関数呼出し*/ == 0 ? True : False } // True False はこう True = function() { return true } False = function() { return false
Haskeller への道 寝がえり勉強よりまず処理系のインストールど・れ・に・し・よ・う・か・なPreludeってなんぞや?ヘルプEmacs を使いたい【ちょっとひとやすみ】「非正格」って? はいはいHello, World! プログラム実行ファイルにしてみようrunhugsやはりブラックボックスなのか?さらに echo.lhs とかねdo しましょあっちゃの世界の引数とこっちゃの世界の引数モナドを遠目に見るcat.lhs とかもみとく【ちょっとひとやすみ】ピュアな怠け者 つかまり立ちリストもモナド?main は関数じゃねーのか?IO a の a と [a] の athunk はどう書くのか?型宣言をみてみよー!型推論より厳しい型宣言の必要性たらいまわし関数続たらいまわしデバッグの手段を知ろう【ちょっとひとやすみ】メイビー? よちよち歩き自分で型をる、るる、類(kind)って?MyEqク
型推論による静的な型付け、純粋な参照透明性を特徴とする関数型言語 リソース リファレンス The Haskell Home Page [en] Haskell Wiki [en] Programming in Haskell [ja] 処理系 Haskell Compilers and Interpreters [en] Hugs [en] GHC [en] nhc98 [en] Helium [en] Implementing functional languages: a tutorial チュートリアル やさしい Haskell 入門 [ja] Yet Another Haskell Tutorial [en] プログラム工学VI 授業関連資料 [ja] <- こっちの方がやさしい Haskeller への道 [ja] モナド All About Monads [en] <- 決定版
(2005.7.18 新規作成, 2009.1 更新。) 関数型プログラミングのための言語 Haskell について。 [2022-09] 処理系が GHC --The Glasgow Haskell Compiler-- だけになってしまってずいぶん経つ。仕様も Haskell 2010 language 以降、纏められなくなってしまった。見通しはあまり明るくない。 Haskell とは (2008.11.7 この節を追加。) 関数型プログラミング 例えばC言語でもオブジェクト指向プログラミングができます (gtk+など) が、プログラミング言語の支援があったほうが自然にプログラミングできます。 Haskell あるいはほかの関数型プログラミング言語 (Clean, O'Caml, Scala, Erlang など)は、関数型プログラミングがしやすいようなプログラミング言語です。程度問題
Haskellというプログラミング言語を知っていますか? 全く聞いたことがないという人が多いかもしれません。そういう名前の言語があるのは知っているけど,どんな言語かは知らないという人もいるかもしれませんね。でも最近では,一部の先進的なソフトウエア開発者の間で,一種のブームと言えるほど熱狂的に受け入れられています。 なぜならば,Haskellは様々な優れた特徴を持っているからです。最初に,他の言語にはあまり見られない際だった特長を一つだけ紹介してみましょう。「遅延評価(lazy evaluation,怠惰評価ともいう)」です。 遅延評価とは,与えられた値を必要になるまで評価(計算)しないということです。この性質により,不必要な計算が行われる無駄をなくすことができます。また,「潜在的に無限の大きさを持つデータ構造」といった通常のプログラミング言語では扱いの難しいものを直接扱えるため,より直接的
寝がえり (「ねがえり」を編集する)|(Haskellerへの道) 勉強よりまず処理系のインストール まずはHaskellをインストールしてみる訳だけど、面倒なのはいきなりくじけ る。私のモットーはまずは動かしてみる。だ。(今決めた) もう何年も前から PC-UNIXの世界ではサードパーティー製のソフトをワンタッチでインストール できる仕組みがあったりする。 Linux だと rpm か? FreeBSD なら ports collection、 NetBSD だと package など。まぁ、NetBSDなんかだとバージョ ンが古かったりする可能性もあるが、気にしない。(そりゃ単に私がちゃんと 最新化管理してないからか?) 私の生活環境は NetBSD1.6.2 なので package から make してインストールしてみる。 インストール作業そのものが好きな人には何の刺激もないが、
2003-12-09 15:39:10 +0900 (1759d); rev 5 HaskellFAQ HaskellCodingStyle UnixCommandInHaskell HaskellAndSh href …… Haskellの日本語リファレンス検索コマンド
会誌「情報処理」連載の「プログラム・プロムナード」(2002年4月〜2005年3月掲載)と「Haskellプログラミング」(2005年4月〜2006年3月掲載)はどなたでもご覧になれます。ファイルはすべてPDF形式です。 「Haskellプログラミング」に掲載されたプログラムは http://www.sampou.org/haskell/ipsj/ から取ることができます.
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にあります。このレポー トの訂正や変更はすべてそこに反映されるようになっ
Haskell は関数型プログラミング言語の”標準語”として、1990 年に 誕生 (Haskell 1.0) した比較的新しい言語です。 その後、1999 年に安定した言語定義 Haskell 98 が制定され、 徐々に知名度が高くなっています。 しかし、まとまった日本語の解説がほとんど無いので、 簡単な解説記事を書いてみました。 目次 Haskell とは プログラムを動かす 関数を定義する 型 入出力 Haskell で最小二乗法 自前の data と class Monad 探索 種々のデータ構造 Module 詰碁を解く
筆者 shelarcy Haskellは,関数型プログラミングというジャンルに属する言語です。Haskellや関数型プログラミングを題材に物事を見ていくことで,今まで思いもよらなかったような未知の世界を知ることができるでしょう。 プログラミング言語を学ぶという行為には, 言語の基本的な文法や考え方を理解する 言語の文化圏で広く使われている考え方に親しんでその言語らしい書き方を習得する 単に言語を使ってできること以上の知恵を学ぶ の3段階があります。この連載では,三つ目の段階を目標に,Haskellプログラミングの世界を一つひとつ丁寧に紹介していきます。 更新は毎月第1水曜日(1月のみ第2水曜日)
Haskell は高階関数や静的多相型付け、定義可能な演算子、例外処理といった多くの言語で採用されている現代的な機能に加え、パターンマッチングやカリー化、リスト内包表記、ガードといった多くの特徴的な機能を持っている。また、遅延評価や再帰的な関数や代数的データ型もサポートしているほか、独自の概念として圏論のアイデアを利用し参照透過性を壊すことなく副作用のある操作(例えば 代入、入出力、配列など)を実現するモナドを含む。このような機能の組み合わせにより、手続き型プログラミング言語では記述が複雑になるような処理がしばしば簡潔になるばかりではなく、必要に応じて手続き型プログラミングを利用できる。 Haskell は関数型プログラミングの研究対象として人気が高い。あわせて Parallel Haskell と呼ばれるマサチューセッツ工科大学やグラスゴー大学によるものをはじめ、他にも Distribu
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く