Haskell勉強会

関数型プログラミングの学習日記

はてなブログでLaTeXの数式を書く方法

はてなブログでLaTeXの数式を書く方法を調べてみました。 「MathJax」というJavaScriptライブラリーを利用する方法が多いみたいですね。 参考情報 MathJaxのCDNのリンクURL どこにCDNのリンクを埋め込むか? LaTeXコードの埋め込み 参考情報 ja.wikipedia.or…

関数と手続きの違い

関数型プログラミングの資料で、とても分かりやすい説明がありました。 ・2019/06 関数プログラミングことはじめ 2019年度版 http://www.mew.org/~kazu/material/2019-fp.pdf これの旧版である ・2015/11 関数プログラミングことはじめ http://www.mew.org/~…

数式を入力できるエディタ

数学の本を読んでいたら、数式を入力/編集できるエディタが欲しくなりました。 調べてみたら、Visual Studio CodeでTeXを編集するためのプラグインがありました。 後で試すときのためにメモ。 とりあえずなら、VSCode+TeXの組合せで数式を描けそうです。 …

圏論とダイクストラの構造化プログラミングの対応

YouTubeでモナド(圏論)の動画を見ていたら、興味深い説明がありました。 www.youtube.com 上記動画のスライド speakerdeck.com 動画だと5分35秒あたり、スライドだと19ページ目に、モナドの使いどころの説明がありました。 ダイクストラの構造化プログラミ…

モナドの説明図

モナドの説明図で分かりやすい図がありました。(メモ) 後で深掘りしてみたいと思います。 www.cs-study.com 1.モナド (Monads) モナドは,関数型言語で副作用を閉じ込めるのに使われているという触れ込みなどでプログラマの関心を集めています. ここで…

Windows上のVisual Studio CodeでHaskellを書く環境を整えたい

普段はWindowsでVisual Studio Codeを使っています。 Haskellの練習をするときも、使い慣れているVS Codeが使えたらいいな、と思いました。 Haskellを書きやすくするためのプラグインがいろいろあるみたいだけど、導入や設定の方法がよく分かりませんでした…

圏論の教材

Haskellの本を読みつつ、興味が湧いたのでLispの本も読んでいました。 型の話抜きで、関数型プログラミングの基礎を学ぶ場合、Lispもあり? Lispは関数型言語の先祖であり、マクロという便利な道具もあるので、今でも学ぶ価値はあると思います。 haskell.hat…

WindowsでLispを学習するときxyzzyが便利

関数型プログラミングの学習で、いろいろな本や教材に手を出しています。 最近は、時間があるときにHaskellやOCamlの本を読んでいます。 いろいろ思うところがあって、積読になっていたLispの本の復習も始めました。 「入門Common Lisp」という本です。 入門…

ウォークスルー Haskell

「型クラス」など、Haskellに出てくる用語を検索していたら、分かりやすい説明がありました。 walk.northcol.org 1. 型クラスとは型クラス(type class)は,データ型をカテゴライズする役割を持つ概念です. 例えば,数値型全般を表す Num という型クラスは…

プログラミングHaskell 第2版

「プログラミングHaskell 第2版」というHaskellの本を買いました。 プログラミングHaskell 第2版(紙書籍+電子書籍)www.lambdanote.com プログラミングHaskell 第2版 作者: Grahum Hutton,山本和彦 出版社/メーカー: ラムダノート 発売日: 2019/08/02 メデ…

Pleromaの名前の由来

分散型SNSのPleromaは、その名前から(イタリアの)ローマと何か関係があるのかな?程度に思ってました。 たまたま「Pleroma」を検索したら、「神の力」という意味の古代ギリシャ語らしく、ネーミングセンスが(中2病っぽくて)カッコイイ!と思いましたw …

入門Haskellプログラミング

今日本屋に行って関数型プログラミングの本を探してみると、Haskellの新刊がありました。 入門Haskellプログラミング 作者: Will Kurt,株式会社クイープ 出版社/メーカー: 翔泳社 発売日: 2019/07/31 メディア: 大型本 この商品を含むブログを見る パラパラ…

ダイクストラ法

「プログラミングの基礎」を復習します。 haskell.hatenablog.com (p.1) はじめに メトロネットワーク最短路問題を解くプログラムを作ること 本書は「ダイクストラ法」のプログラムを作ります。 haskell.hatenablog.com ダイクストラ法とは? 網目状になった…

Haskellの右結合と左結合

Haskellの勉強メモ。 haskell.hatenablog.com (p.121) 関数の型 Haskellでは、演算子もまた関数です。 演算子に()(丸カッコ)を付けると、関数として扱えます。 まだ、:tでその型も確認できます。 Prelude> :t (&&) (&&) :: Bool -> Bool -> Bool ->が2個も…

Haskellの矢印の記号「->」の読み方

Haskellの勉強メモ。 haskell.hatenablog.com (p.120) 関数の型 Prelude> :t not not :: Bool -> Bool ->という矢印のような表現が型の部分に出てきました。 関数の型はこのように「何かの型->何かの型」という型で表され、「矢印の元の型の値を受け取って、…

Haskellで型を調べる:tコマンド

Haskellの勉強メモ。 haskell.hatenablog.com (p.119) 型の確認と型注釈 GHCiでは、:t(コロンt)コマンドで実際にGHCiが認識している型を確認できます。 「:t」とは「:type」の省略形でした。 haskell.jp 型(type)の情報の出力(:tコマンド) GHCの対話環境…

関数型プログラミングを学んで何を作るのか?

そもそもだけど、目的がスッポリ抜けていると、勉強にも身が入りませんね?w 何をやるために、関数型プログラミングを学ぶのか?を考えてみました。(本末転倒) DApps(分散型アプリケーション) 最近…というほどでもないけど、「仮想通貨」「ブロックチェ…

Realm of Racket

Racketの本を買いました。 Realm of Racket: Learn to Program, One Game at a Time! 作者: Matthias Felleisen,Conrad Barski,David Van Horn,Eight Students of Northeastern University 出版社/メーカー: No Starch Press 発売日: 2013/06/13 メディア: …

Erlang VM上で動く言語

OracleがJavaのサポートを有償化しました。(困惑) そこで、JavaやJava VM上で動く言語を使わないで、大規模なWebサービスのバックエンドを開発するには、どんなプログラミング言語やツールを使えば良いか?を考えてみました。 希望条件 Erlang VM上で動く…

SchemeやRacketの本

Lispの方言であるSchemeやRacketの本がいろいろあった。 Scheme - Wikipedia Racket - Wikipedia Racketの本とか、面白そうw Realm of Racket: Learn to Program, One Game at a Time! 作者: Matthias Felleisen,Conrad Barski,David Van Horn,Eight Studen…

Haskellのインストール Stack編

OCamlの本を読み終えて、積読になってたHaskellの本を読み始めました。 haskell.hatenablog.com 「関数プログラミング実践入門」(増補改定)という本です。 以前読んだときは、なんか分かりづらい話だな!と思いましたw 関数型プログラミングの本を数冊読…

関数型プログラミングの肝=副作用がないこと

Lisp勉強のメモ。 はじめてのLisp関数型プログラミング――ラムダ計算からリファクタリングまで一気にわかる (Software Design plus) 作者: 五味弘,272 出版社/メーカー: 技術評論社 発売日: 2016/03/18 メディア: 大型本 この商品を含むブログ (4件) を見る (…

WindowsにLispをインストールする方法

OCamlの本を1冊読み終えました。 「次、何を読もうかな~?」と思って本棚を見てみると、積読になっていたLispの本がありました。「はじめてのLisp関数型プログラミング」という本です。 はじめてのLisp関数型プログラミング――ラムダ計算からリファクタリン…

すべてを関数と見なす

関数型プログラミングの特徴として、「すべてを関数と見なす」という考え方が紹介されていました。 関数型言語ML (SML, OCaml, etc.), Part 7 10 :デフォルトの名無しさん:2017/12/28(木) 09:57:11.71 id:H09IESsG.net 関数型って変数が定数になっただけ?…

プログラミングの基礎 1.3 準備

今日は、OCamlの実行環境を用意します。 haskell.hatenablog.com 1.3 準備 (p.4) 本書では、OCaml処理系がすでにインストールされており、コマンドラインから起動できることを仮定しています。 インストールの方法などについては1.4節で紹介するサポートペー…

プログラミングの基礎 1.2 使用する言語

今日も関数型プログラミングの学習です。 haskell.hatenablog.com 1.2 使用する言語 (p.3) 本書で使用する言語は、関数型言語のひとつであるOCamlです。 これで「オーキャムル」と発音します。 本書では、OCamlを使ってプログラミングを学習します。 OCaml -…

プログラミングの基礎 1.1 デザインレシピ

haskell.hatenablog.com 1.1 デザインレシピ 本書の目標は、3段構えになってました。 メトロネットワーク最短路問題を解く コンピューターサイエンスの基礎=データ構造とアルゴリズムの理解 正しいプログラムを作る方針=「デザインレシピ」の理解 (p.2) プ…

プログラミングの基礎 第1章 はじめに

haskell.hatenablog.com 第1章 はじめに 本書の目標は、「メトロネットワーク最短路問題」を解くプログラムを作ること。 haskell.hatenablog.com 東京の地下鉄にはいろんな路線があるけど、どの路線を使えば最短で移動できるか?を計算するプログラムですね…

Erlang/Elixirのパッケージマネージャー「Hex」

Erlang/Elixirで、RubyGems(Ruby言語用のパッケージ管理システム)に相当するツールが用意されていました。 それが、「Hex」というパッケージ管理システムです。 Hex hex.pm github.com Hexの使い方など、参考情報。 qiita.com Hex は Elixir, Erlang 向け…

Elixirのプロファイラー「:observer」

Erlangの「observer」というGUIのサーバーモニタリングツールを使うと、Elixirの稼動状況を視覚的に把握できました。 プログラミングElixir 作者: Dave Thomas,笹田耕一,鳥井雪 出版社/メーカー: オーム社 発売日: 2016/08/19 メディア: 単行本(ソフトカバ…