タグ

Haskellに関するmsakamoto-sfのブックマーク (22)

  • プログラミング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版
  • Exercism

    Get really good at programming. Develop fluency in 70 programming languages with our unique blend of learning, practice and mentoring. Exercism is fun, effective and 100% free, forever.

    Exercism
  • 圏論入門|日本評論社

    第1章 圏・関手・自然変換 1.1 集合と写像から 1.2 圏・対象・射 1.3 圏のデータ構造 1.4 関手・反変関手 1.5 忠実関手と充満関手 1.6 自然変換 1.7 Haskの部分圏 第2章 自然変換と圏同値 2.1 関手圏 2.2 圏同値 第3章 普遍性と極限 3.1 始対象と終対象 3.2 積 3.3 余積 3.4 極限 3.5 余極限 3.6 極限の存在 3.7 余極限の存在 第4章 関手と極限の交換 4.1 関手は錐や余錐を写す 4.2 Hom関手と極限 4.3 Hom関手と余極限 4.4 実行可能な例 4.5 極限を関手とみる 第5章 随伴 5.1 随伴とは 5.2 単位と余単位 5.3 三角等式 5.4 普遍射と随伴 5.5 随伴の同値な言い替え 5.6 随伴と圏同値 5.7 随伴の大局的な自然性 5.8 随伴と極限 第6章 モナドとHaskellのMonad 6.1

    圏論入門|日本評論社
  • IO モナドと副作用 - Haskell-jp

    純粋関数型プログラミングで副作用を扱う方法Posted by Mizunashi Mana on April 05, 2020 Haskell は他のプログラミング言語には見られない特徴を多く持っている。その中の1つが純粋性だ。Haskell は純粋関数型プログラミング言語であることを、売りの1つにしている。しかし、純粋性は多くの場合表現力の縮小を招く。ところが Haskell は、IOモナドの導入により、通常のプログラミング言語と変わらぬ表現力を持てるようになっている。これは、とても驚くべきことだ。しかし、同時にこれは Haskell 入門者にとって、大きな混乱を招いているようだ。 今回は、そもそも純粋性とはなんなのか、なぜ他の言語は純粋性を担保できないのか、そして Haskell はどうやって IO モナドにより純粋性を担保しつつ他の言語と変わらない表現力を持てるようにしているのかにつ

    IO モナドと副作用 - Haskell-jp
  • Pythonを使って関数型プログラミング Part.2

    2019年9月16、17日、日最大のPythonの祭典である「PyCon JP 2019」が開催されました。「Python New Era」をキャッチコピーに、日だけでなく世界各地からPythonエンジニアたちが一堂に会し、さまざまな知見を共有します。プレゼンテーション「Pythonで始めてみよう関数型プログラミング」に登壇したのは、株式会社SQUEEZEの寺嶋哲氏。講演資料はこちら 不変/永続データ構造を提供するパッケージ 寺嶋哲氏:続いて、不変/永続データ構造についてです。 listを操作する関数の問題点について、例題で見ていきましょう。add_mangoは果物名の文字列のlistをとって、mangoをそのlistに足して返します。change_from_apple_to_bananaは、同じようにlistをとってappleを探して、bananaに入れ替えて返します。 その

    Pythonを使って関数型プログラミング Part.2
  • Pythonを使って関数型プログラミング Part.1

    2019年9月16、17日、日最大のPythonの祭典である「PyCon JP 2019」が開催されました。「Python New Era」をキャッチコピーに、日だけでなく世界各地からPythonエンジニアたちが一堂に会し、さまざまな知見を共有します。プレゼンテーション「Pythonで始めてみよう関数型プログラミング」に登壇したのは、株式会社SQUEEZEの寺嶋哲氏。講演資料はこちら なぜ関数型プログラミングを愛するようになったのか 寺嶋哲氏:それでは発表を始めます。まず「おまえ誰よ?」。はい、寺嶋哲といいます。Twitterなどでは「@meganehouser」というIDでやっています。 所属は株式会社SQUEEZE(スクイーズ)で、ふだんはPython、Django、Django REST frameworkでバックエンドを書いて、AngularJS、Angularでフロン

    Pythonを使って関数型プログラミング Part.1
  • 「圏論とプログラミング」発表スライドメモ - Qiita

    この記事は、先日の 2020年01月25日に慶応大学で開催されたシンポジウム「圏論的世界像からはじまる複合知の展望」の登壇資料を文字起こししたものです。 Slide: 圏論とプログラミング / Category Theory and Programming - Speaker Deck Video: 圏論とプログラミング / 稲見泰宏 - YouTube 皆さん、こんにちは。稲見 泰宏と申します。 日は、この圏論シンポジウムという貴重な場でお話しさせていただくことをとても光栄に思います。 私の方からは、圏論とプログラミングに絡めた話について発表します。 それでは、どうぞよろしくお願いします。 まず簡単に自己紹介します。稲見泰宏といいます。 現在は、フリーランスのiOSアプリ開発者として活動しております。 ここに書いてあるのは、私の過去10年間のプログラミング経歴ですが、 PHPJava

    「圏論とプログラミング」発表スライドメモ - Qiita
  • FAQ for comp.lang.functional

    Frequently Asked Questions for comp.lang.functional Edited by Graham Hutton, University of Nottingham Version of November 2002 (This document is no longer being updated) 1. This document 2. General topics 2.1. Functional languages 2.2. History and motivation 2.3. Textbooks 2.4. Journals and conferences 2.5. Schools and workshops 2.6. Education 3. Technical topics 3.1. Purity 3.2. Currying 3.3. Mon

  • Haskellの型と直観論理 - 朝日ネット 技術者ブログ

    開発部のxgotoです。Haskellの初級・中級者向けのトピックを取り上げたいと思います。 今回は型(Type)についてです。型はHaskellの入門書でも必ず最初のほうに説明されるもので、手元のによれば、 型とは、互いに関連する値の集合である。 ---- 『プログラミングHaskell』 Graham Hutton 著 / 山和彦 訳 だとか、 値の世界は型と呼ばれる系統的な集まりへと分割される。 ---- 『関数プログラミング入門 Haskellで学ぶ原理と技法』 Richard Bird 著 / 山下伸夫 訳 などのように書かれています。たとえば Bool は True と False の2つの値からなる集合だし、Intは整数の集合というように、型は値の集合というふうにみることができます。それならば型などと呼ばずに集合と呼べばいいと思いますが、「異なるものには異なる名前をつけろ

    Haskellの型と直観論理 - 朝日ネット 技術者ブログ
  • https://www.tryhaskell.org/

  • Online editor and compiler

  • Haskell Language

    primes = filterPrime [2..] where filterPrime (p:xs) = p : filterPrime [x | x <- xs, x `mod` p /= 0]

  • なぜ我々はHaskellを使うのか

    gistfile1.md スタートアップ企業 Silk が、Haskellを採用した理由。 http://engineering.silk.co/post/31920990633/why-we-use-haskell As a newly started company, we have a lot of technical decisions to make. One of the important ones is the choice of a programming language. Since we’re building a web application, this goes for both the client (i.e. the web browser) and the server. 新しく始めた会社として、我々はたくさんの技術的決定を行わなければなりません。中でも

    なぜ我々はHaskellを使うのか
  • なぜHaskellを学ぶと良いか - Qiita

    なぜこれを書くのか 私がQiitaに投稿した記事を見た方から、メールが届きました。 プログラミング言語のHaskellを勉強し始めたものの、難しくてやめようかと考えているそうです。 その気持ちも非常によく分かります。 すごいHが出版されてから年月も経ち、それなりに勉強しやすくなったとはいえ、お世辞にもHaskellを学ぶ環境が整っているとは言えません。 私はHaskellで製品開発をする会社を保守運用していたことがあり、また自分自身もHaskellでプログラムを書いています。 また、Haskellを普及させるべく、「こわくないHaskell入門」という記事を書いたこともあります。 これらの経験を踏まえ、この機会にあらためて「なぜHaskellを学ぶと良いか」についてまとめたいと思い立ちました。 Haskellについてまだよく知らない方が、入り口として読める内容を目的としているので、できる

    なぜHaskellを学ぶと良いか - Qiita
  • こわくないHaskell入門(初級) - Qiita

    手続き型に慣れた人にもやさしい、こわくないHaskell入門記事です。 「なぜHaskellを学ぶと良いか」も参考にしていただければ幸いです。 まえがき Haskellと聞いて、何を思い浮かべますか? モナド 関数型 遅延評価 第4世代Intel Coreプロセッサ アライグマ いろいろ思い浮かべるかもしれませんが、Haskellがすばらしいのはモナドを利用しているからでも、遅延評価型の純粋関数型言語だからでもありません。 いろいろな「Haskellらしさ」が集まって、その結果Haskellにしかないすばらしい魅力を提供してくれます。 それは、決していままでのパラダイムと対立するものではなく、 手続き型 構造化プログラミング オブジェクト指向 のようなこれまでの便利な道具をうまく抽象化しながら統合して作り上げられたものです。 PHP javascript C++ Java などにあなたが費

    こわくないHaskell入門(初級) - Qiita
  • こわくないHaskell入門(初級その2) - Qiita

    手続き型に慣れた人にもやさしい、こわくないHaskell入門記事の第2弾です。 初級のつぎは中級だと思った? 残念。 まえがき 前回のやつのViewsが1000を超えた記念に続編を書いてみます。 前回は「Haskellって関数型(この言葉を見るだけで、うっ頭が...)とか呼ばれるけど、ふつうに手続き型でこわくないよ」を示しました。 今回はHaskellの型についてです。1 Haskellは強い静的な型付言語と呼ばれていてこわそうですが、実際にはこわくないです。 むしろ僕みたいにプログラム書くのがうまくない人がよろしくやれるようになります。 型を使えるようになって、いままで以上にコンパイラちゃんと仲良くおはなししましょう。 対象者 なんかもっと生産性の上がる言語を習得したい人 なんかHaskell入門しようとして挫折しかけた人 なんかマサカリ投げたい怖いお兄さんたち なんか前回のを読んで楽し

    こわくないHaskell入門(初級その2) - Qiita
  • Haskellと共に4年間を歩んだ起業家の視点 | POSTD

    (訳注:2017/11/17、頂きましたフィードバックを元に記事を修正いたしました。) 2012年、私は 新しいタイプの企業向けeラーニングプラットフォーム を開発するスタートアップ、Better ^(1) を共同設立しました。私たちのゴールは、大企業が、適応力の高いクロスプラットフォーム、多言語のオンラインコースを、速く安く開発、配信、解析できるようにすることでした。 立ち上げ初日にメインで使うと決めたHaskellは、チームが開発者10人を抱えるようになった時もバックエンドで使い続けていた唯一の言語でした。 実験と開発の期間を経て、Betterは数か月の間にAmerican ExpressやSwissportを始めとする顧客を得て、$0から$500,000超の年間経常利益を上げるまでに成長しました。しかし、更なる成長を目指すためには配信モデルが妨げになることが分かったため、最終的にオー

    Haskellと共に4年間を歩んだ起業家の視点 | POSTD
  • Comparing the Same Project in Rust, Haskell, C++, Python, Scala and OCaml - Tristan Hume

    During my final term at UWaterloo I took the CS444 compilers class with a project to write a compiler from a substantial subset of Java to x86, in teams of up to three people with a language of the group’s choice. This was a rare opportunity to compare implementations of large programs that all did the same thing, written by friends I knew were highly competent, and have a fairly pure opportunity

  • TLS 1.3の標準化と実装 | IIJ Engineers Blog

    IIJ-II 技術研究所 技術開発室の山です。現在技術開発室は、私を含めた4人で構成されており、主にプログラミング言語Haskellを使って開発を進めています。今回の話題である TLS(Transport Layer Security) 1.3 もHaskellで実装しました。 4年の歳月をかけて議論されてきたTLS 1.3ですが、この8月にめでたく仕様がRFC 8446となりました。貢献者リストに私の名前が載っていることを聞きつけた広報から、ブログ記事の執筆依頼がありましたので、TLS 1.3の標準化や実装の話について書いてみます。 なぜTLS 1.3を標準化する必要があったのか理由を知りたい方は、「TLSの動向」という記事や「TLS 1.3」というスライドを読んで下さい。 インターネットで使われているプロトコルは、IETFという団体で仕様が議論されて策定されます。IETFには、誰でも

    TLS 1.3の標準化と実装 | IIJ Engineers Blog
  • Pandoc - index

    If you need to convert files from one markup format into another, pandoc is your swiss-army knife. Pandoc can convert between the following formats: (← = conversion from; → = conversion to; ↔︎ = conversion from and to) Lightweight markup formats ↔︎ Markdown (including CommonMark and GitHub-flavored Markdown) ↔︎ reStructuredText → AsciiDoc ↔︎ Emacs Org-Mode ↔︎ Emacs Muse ↔︎ Textile → Markua ← txt2t