タグ

haskellに関するs_ryuukiのブックマーク (14)

  • こわくない関数型プログラミング

    関数型プログラミングは全部理解しようとすると難しいですが、簡単な部分の中にも有用な知見がたくさんあります。 関数型プログラミングにまだ親しんでいない人向けに、明日からのプログラミングにすぐ役に立つ考え方をできるだけわかりやすく伝えます。

    こわくない関数型プログラミング
  • プログラミングHaskell 第2版

    紙書籍をお届けします(PDFがついてきます) PDFのみが必要な場合は、こちらのPDF単品をお求めください PDFは購入後すぐにダウンロード可能です 紙書籍は通常、ご注文から2~3営業日で発送します 年末年始や大型連休など、1週間から10日程度、配送のお休みをいただく場合があります。詳しくはお知らせをご覧ください プログラムが、手続きでなく、関数と型に見えてくる Graham Hutton 著、山和彦 訳 328ページ A5判 ISBN:978-4-908686-07-8 2019年8月2日 第1版第1刷 発行 翻訳者による補足情報があります(リンク) 正誤情報 Haskellは、1990年に誕生した歴史あるプログラミング言語です。強力な型推論を備えた、静的型付きで遅延評価の純粋関数型言語として知られています。Haskellを知ることは、こうした概念の背景にある計算機の理論を知り、それが

    プログラミングHaskell 第2版
  • Haskell 超入門 - Qiita

    Haskellで簡単なプログラムを書くのに最低限必要な基礎文法を取り上げます。練習では再帰に慣れることに重点を置きます。再帰によるリスト処理の例として各種ソート(挿入ソート、バブルソート、マージソート、クイックソート)を紹介します。ラムダやモナドなどの発展的な内容には触れませんのでご了承ください。 シリーズの記事です。 Haskell 超入門 ← この記事 Haskell 代数的データ型 超入門 Haskell アクション 超入門 Haskell ラムダ 超入門 Haskell アクションとラムダ 超入門 Haskell IOモナド 超入門 Haskell リストモナド 超入門 Haskell Maybeモナド 超入門 Haskell 状態系モナド 超入門 Haskell モナド変換子 超入門 Haskell 例外処理 超入門 Haskell 構文解析 超入門 【予定】Haskell 継続

    Haskell 超入門 - Qiita
  • 機械語の勉強会に参加したので8086の逆アセンブラをGoで書いてみてる - As a Futurist...

    HHVM の話を聴いてからというもの、VM というものにどうにも興味がわいて仕方がない今日この頃。世の中の言語処理系も中身は VM だったりするわけで、そもそも VM ってどうやって作るのかな − とか考えてたら @riywo PDP-11のVM作って、Unix V6動かせば、一石何鳥になることやら — sakamoto.kazuki (@splhack) October 1, 2014 というご意見をもらって、初めて PDP-11 というものを調べ始めました。UNIX V6とかを買って読み始めてみたり、言語処理系の作り方のにも手をだしてみました。 PDP-11/UNIX V6 の勉強会があった そんな中、@7shiさんが主催されている「池袋バイナリ勉強会」の存在を知りました。なんと、ついこの間まで PDP-11 の逆アセンブラ(機械語のバイナリからアセンブリ言語を出力する)を作っ

    機械語の勉強会に参加したので8086の逆アセンブラをGoで書いてみてる - As a Futurist...
  • Elmというミニマムでフレームワークにもなる関数型altJS言語を触ってみよう!!! - Qiita

    Elm触ってみると面白くてハマりまして、この記事もそんな一人による紹介記事になります。 この記事が一番ストック数が多いので、v0.17になったことに合わせて書き直しました。(2016年5月18日) Elmとは ・コンパイルすると、HtmlCSSJavascriptになる。 Elmとは、コンパイルするとHTMLCSSJavascriptを生成するプログラミング言語です。 ・Elmアーキテクチャで書ける。 v0.17から正式にElmはフレームワークを兼ね備えた言語になりました。 後述するElmアーキテクチャというパラダイムでブラウザアプリケーションを書きます。 ・Elmはシンプルで小さな関数型の言語です。 ElmはHaskellやいろんな関数型言語を参考にして、とても小さく強力な構文を持っています。 ・学習が始めやすいです。 かなり学習のしやすさや学習曲線を大事にしているのでちょっと見

    Elmというミニマムでフレームワークにもなる関数型altJS言語を触ってみよう!!! - Qiita
  • モナドって結局何なのよ? — join to Monad v0.1.3 documentation

    モナドって結局何なのよ?¶ Haskell を勉強しようとすると必ず「モナド」ってのが出てきます。困ったものです。数学とか圏論とか関係があるらしくって、何が書いてあるんだか分からなくって嫌になってしまいます。でもね、Haskell って凄いらしいじゃないですか、格好良いらしいじゃないですか。ここはちょっとがんばって色々考えてみましょう。 そもそも Haskell って何なのよ?¶ 何なんでしょうね、Haskell って。コンピュータ言語らしいんです、あ、それは分かってると。良く挙げられる性質は次な感じ?: 関数型言語 強い型付け 遅延評価 参照透過 ここでちょっと型に関して見てみましょう。試しに Haskell の実装の 1 つである Hugs で 1 について考えてみます。Hugs では :type や :info というコマンドで hugs に型の情報などを質問することができます。例え

  • HaskellのIntegerをC++で使う - iorate's blog

    C++の標準には多倍長整数ライブラリがありません。これは大変なことだと思います。 まあBoost.Multiprecision来るじゃないというのはさておき、 標準の多倍長整数がないなら他言語の標準から持ってくればいいということで、HaskellのIntegerをラップしてC++の多倍長整数クラスにしてみました。 まずIntegerを扱う関数をFFIでエクスポートします。Integerを引数・戻り値にする関数はエクスポートできないので、代わりにStablePtr Integerを使います。これはIntegerオブジェクトを指すポインタで、GCに回収・再配置されない保証があります。CやC++からはただのvoid *に見えます。 とりあえずfromIntegral、(*)、showをエクスポートしました(今回は乗法と出力がしたいので)。StablePtr IntegerとCStringの解放関

    HaskellのIntegerをC++で使う - iorate's blog
  • Ppl

    Scala Warrior and type-safe front-end development with Scala.jstakezoe

    Ppl
  • スタートHaskell2 型を信じろ

    SIFE SFU: Regionals competition - environmental sustainabilityjennifer

    スタートHaskell2 型を信じろ
  • How wonderful to be (statically) typed 〜型が付くってスバラシイ〜

    PFI社内セミナーで強力な型システムがもたらす様々な恩恵について発表した際の資料です。 補足的な記事はこちらをどうぞ: http://blog.konn-san.com/article/20120412/how-wonderful-to-be-typed また、発表の模様は以下の ustream からご覧になれます。 http://www.ustream.tv/recorded/21781769

    How wonderful to be (statically) typed 〜型が付くってスバラシイ〜
  • Networkモジュールを使ってGET - Faith and Brave - C++で遊ぼう

    Haskell でソケット通信をやってみる - yasuabe blog このエントリを見て、簡単そうだったので遊んでみました。 httpでGETをするだけですが、こんな感じで書けました。 import Network import System.IO getCommand :: String -> IO String getCommand hostName = withSocketsDo $ do hSetBuffering stdout NoBuffering soc <- connectTo hostName (PortNumber 80) hSetBuffering soc LineBuffering hPutStr soc $ "GET /index.html HTTP/1.1\nHost:" ++ hostName ++ "\n\n" result <- hGetContent

  • 第48回 並列プログラムを高速化するための原則

    この連載では第37回から前回まで,逐次処理を行うプログラムを効率化するテクニックやツールを説明してきました。こうした知識を前提に,今回から何回かに分けて,並列プログラムの処理の効率化について解説していきます。これまで説明したテクニックやツールの中には,並列プログラムで利用できるものと利用できないものがあります。これらを明らかにしていきます。 並列化の前に逐次処理の効率を上げる 第10回から第14回にかけて,GHCを使ったHaskellでの並行/並列プログラミングについて説明しました。もっとも,プログラムの並列化は目的ではなく,あくまでプログラムを高速化する手段の一つに過ぎません(参考リンク)。並列化したコードが逐次処理のコードに比べて処理が遅くなる場合には,並列化する意味はありません。 並列プログラムの効率は,処理を並列化する前の逐次処理プログラムの効率に依存します。高速な並列プログラムを

    第48回 並列プログラムを高速化するための原則
  • 関数型プログラミングの世界

    関数型プログラミングで重要となる高階関数と遅延評価について紹介。時間の関係で、遅延評価については Why Functional Programming Matters とその関連 URL の紹介しかしていない。

    関数型プログラミングの世界
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • 1