Haskell勉強会

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

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章 はじめに 本書の目標は、「メトロネットワーク最短路問題」を解くプログラムを作ること。 東京の地下鉄にはいろんな路線があるけど、どの路線を使えば最短で移動できるか?を計算するプログラムですね。 www.tokyometro.jp 確…

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 メディア: 単行本(ソフトカバ…

Elixirのオンライン教材「Alchemist Camp」

ElixirとPhoenixのオンライン教材がありました。 YouTubeの動画が用意されており、分かりやすそうです。 Alchemist Camp | Learn Elixir and Phoenix Framework by building projects! twitter.com あとで見てみよう。 プログラミングElixir 作者: Dave…

Elixirの関数のヘッド

Elixirで「関数のヘッド」という用語があった。 いまいちピンと来なかったので、意味を調べてみた。 プログラミングElixir 作者: Dave Thomas,笹田耕一,鳥井雪 出版社/メーカー: オーム社 発売日: 2016/08/19 メディア: 単行本(ソフトカバー) この商品を含…

Elixirのアトム

Elixirの「アトム」が、よく分からなかった。 プログラミングElixir 作者: Dave Thomas,笹田耕一,鳥井雪 出版社/メーカー: オーム社 発売日: 2016/08/19 メディア: 単行本(ソフトカバー) この商品を含むブログ (3件) を見る アトムとは? (p.24) アトムは…

関数型言語の分類

「オブジェクト指向でなぜつくるのか」という本に、関数型言語の説明がありました。 オブジェクト指向でなぜつくるのか 第2版 作者: 平澤章 出版社/メーカー: 日経BP社 発売日: 2014/03/05 メディア: Kindle版 この商品を含むブログ (2件) を見る 目次 (参…

プログラミングElixir 目次

「プログラミングElixir」という本を買いました。 Elixirを勉強して、Webアプリを作ってみたいです。 プログラミングElixirは、以下のような構成になっていました。 プログラミングElixir 作者: DaveThomas 出版社/メーカー: オーム社 発売日: 201…

Elixirのオンライン実行環境「paiza.IO」

新しいプログラミング言語を試すとき、実行環境の用意が面倒くさい。 オンライン(ブラウザー)でElixirを試せるツールがありました。 https://paiza.io/ja/projects/new paiza.io この画面で左上の言語メニューから「Elixir」を選択すると、Elixirの実行環…

Elixirの調査

Webアプリの作成でサーバーサイドに関数型言語を使いたい。 Haskell、OCamlでもいいけど、Ruby on RailsみたいなWebアプリフレームワークがあると便利。 ElixirにはPhoenixがあるので、Elixirを調査してみたい。 Elixir (プログラミング言語) - Wikipedia El…

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

WindowsでOCamlを使うには、Cygwinを使う方法が簡単でした。 ダウンロード インストール Cygwinのインストール 動作チェック ダウンロード OCaml for Windows - Installation ここから「OCaml64.exe」(64ビット版)または「OCaml32.exe」(32ビット版)とい…

プログラミングの基礎

OCamlで関数型プログラミングを学ぶ教科書がありました。 「プログラミングの基礎」という本です。 本書も読んで、関数型プログラミングの基礎を学んでみようと思います。 プログラミングの基礎 (Computer Science Library) 作者: 浅井健一 出版社/メーカー:…

プログラミング in OCaml

OCamlの本も持っているので、OCamlでも関数型プログラミングを勉強してみます。 プログラミング in OCaml 〜関数型プログラミングの基礎からGUI構築まで〜 作者: 五十嵐淳 出版社/メーカー: 技術評論社 発売日: 2014/12/09 メディア: Kindle版 この商品を含…

[増補改訂] 関数プログラミング実践入門

「関数プログラミング実践入門」というHaskellの本を買いました。 この本は、2016年に改訂版が出ているので、間違って古いほうを買わないように気を付けてください。 [増補改訂]関数プログラミング実践入門 ──簡潔で、正しいコードを書くために (WEB+DB PRES…

H本 (p.viii) GHCiコマンドとヘルプ「:?」

H本 イントロダクション(p.viii) メモ。 haskell.hatenablog.com GHCiコマンド GHCiコマンドの一覧 まとめ GHCiコマンド コロン(:)で始まる行が、「GHCiコマンド」です。 (例)スクリプトのロード「:l」とリロード「:r」 GHCiコマンドの一覧 GHCiコマンド…

H本 (p.viii) スクリプトのロード「:l」とリロード「:r」

H本 イントロダクション(p.viii) メモ。 haskell.hatenablog.com スクリプトのロード「:l」 スクリプトのリロード「:r」 まとめ スクリプトのロード「:l」 myfunctions.hsというスクリプトに関数を定義したならば、:l myfunctionsとタイプすることで、それを…