SlideShare a Scribd company logo
1 of 14
Download to read offline
「7つの言語、7つの世界」を
読む
ひげ
7つの言語、7つの世界
(表題の通り) 7つの言語について書いてある本
Ruby : 日本謹製, 純粋OOP言語
Io : プロトタイプベースの言語
Prolog : 論理型プログラミング言語
Scala : ハイブリット(OOP + 関数型)
Erlang : 並行処理につよい
Clojure : JVM上で動く Lisp
Haskell : 純粋関数型プログラミング言語
7つの言語、7つの世界 の特徴
様々なパラダイムを知ろうというコンセプト
言語そのものではなく
環境構築は省く
バージョンに依存せずに説明
REPLベースでの話が多い
並行プログラミングの話が結構ある
作者に聞いてみたコーナーがある
7つの言語、7つの世界 の特徴
様々なパラダイムを知ろうというコンセプト
言語そのものではなく
環境構築は省く
バージョンに依存せずに説明
REPLベースでの話が多い
並行プログラミングの話が結構ある
作者に聞いてみたコーナーがある
演習用の環境を構築しよう!
REPL 多いし、Jupyter 欲しい!
Jupyter Notebook
REPL の Web UI 的な何な Python プログラム
しかも REPL をコードとして残せる
できた
できるまで
1. 7つの言語の処理系のDockerイメージを作る
2. 7つの Jupyter Kernel を入れた
工夫したとこ
各々のDockerfile を作ってマージする
$ docker-merge 
Dockerfiles/ruby/Dockerfile 
Dockerfiles/io/Dockerfile 
Dockerfiles/prolog/Dockerfile 
Dockerfiles/scala/Dockerfile 
Dockerfiles/erlang/Dockerfile 
Dockerfiles/clojure/Dockerfile 
Dockerfiles/clojure/Dockerfile > Dockerfiles/seven-lang/Dockerfile
docker-merge というコマンドは Haskell で作った
独立して動くならマージしても動くだろう(暴論)
苦労したとこ
バージョンが古い!!
苦労したとこ
7言語7色といった感じだ
Ruby: rbenv で Ruby を入れてたせいで悪戦苦闘...
Io: そもそもリストにKernel がねぇ
Prolog: 処理系が GNU Prolog と違いすぎて使えん
Scala: README が長すぎてわからん
Erlang: もうイロイロダメ
Clojure: すんなりできた...さすが Lisp, 神の言語 !!
Haskell: stack build が通らねぇ...
今後
演習やらなきゃなぁ
(作って満足してきてしまった)
おしまい

More Related Content

Similar to 「7つの言語、7つの世界」を読む

Ruby本から読み解くRuby考古学 - Ruby Archaeology from the Ruby Book
Ruby本から読み解くRuby考古学 - Ruby Archaeology from the Ruby BookRuby本から読み解くRuby考古学 - Ruby Archaeology from the Ruby Book
Ruby本から読み解くRuby考古学 - Ruby Archaeology from the Ruby BookTadashi Saito
 
Goで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろうGoで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろうEsehara Shigeo
 
Flang kkd1
Flang kkd1Flang kkd1
Flang kkd1florets1
 
セマンティック・ウェブのためのRDF/OWL 入門 6章 後半
セマンティック・ウェブのためのRDF/OWL 入門 6章 後半セマンティック・ウェブのためのRDF/OWL 入門 6章 後半
セマンティック・ウェブのためのRDF/OWL 入門 6章 後半Koji Shiraishi
 
2017年3月13日勉強会発表資料
2017年3月13日勉強会発表資料2017年3月13日勉強会発表資料
2017年3月13日勉強会発表資料shogo yamada
 

Similar to 「7つの言語、7つの世界」を読む (8)

Scala入門
Scala入門Scala入門
Scala入門
 
Ruby本から読み解くRuby考古学 - Ruby Archaeology from the Ruby Book
Ruby本から読み解くRuby考古学 - Ruby Archaeology from the Ruby BookRuby本から読み解くRuby考古学 - Ruby Archaeology from the Ruby Book
Ruby本から読み解くRuby考古学 - Ruby Archaeology from the Ruby Book
 
簡単!Groovy入門
簡単!Groovy入門簡単!Groovy入門
簡単!Groovy入門
 
Goで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろうGoで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろう
 
Flang kkd1
Flang kkd1Flang kkd1
Flang kkd1
 
Recommend scala
Recommend scalaRecommend scala
Recommend scala
 
セマンティック・ウェブのためのRDF/OWL 入門 6章 後半
セマンティック・ウェブのためのRDF/OWL 入門 6章 後半セマンティック・ウェブのためのRDF/OWL 入門 6章 後半
セマンティック・ウェブのためのRDF/OWL 入門 6章 後半
 
2017年3月13日勉強会発表資料
2017年3月13日勉強会発表資料2017年3月13日勉強会発表資料
2017年3月13日勉強会発表資料
 

More from Nobutada Matsubara

Haskell で作る競技型イベントの裏側
Haskell で作る競技型イベントの裏側Haskell で作る競技型イベントの裏側
Haskell で作る競技型イベントの裏側Nobutada Matsubara
 
Elixir Programming with Type checking
Elixir Programming with Type checkingElixir Programming with Type checking
Elixir Programming with Type checkingNobutada Matsubara
 
Haskell と Elm と JSON の話
Haskell と Elm と JSON の話Haskell と Elm と JSON の話
Haskell と Elm と JSON の話Nobutada Matsubara
 
ADVENTAR の Bot を作る with Haskell
ADVENTAR の Bot を作る with HaskellADVENTAR の Bot を作る with Haskell
ADVENTAR の Bot を作る with HaskellNobutada Matsubara
 
GitHub での Haskell の色が変わったんで
GitHub での Haskell の色が変わったんでGitHub での Haskell の色が変わったんで
GitHub での Haskell の色が変わったんでNobutada Matsubara
 
日記って続かないよね...
日記って続かないよね...日記って続かないよね...
日記って続かないよね...Nobutada Matsubara
 
Lisper はじめました (再)
Lisper はじめました (再)Lisper はじめました (再)
Lisper はじめました (再)Nobutada Matsubara
 
入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !Nobutada Matsubara
 
SKIコンビネーターによる処理系の作成
SKIコンビネーターによる処理系の作成SKIコンビネーターによる処理系の作成
SKIコンビネーターによる処理系の作成Nobutada Matsubara
 

More from Nobutada Matsubara (20)

Haskell で作る競技型イベントの裏側
Haskell で作る競技型イベントの裏側Haskell で作る競技型イベントの裏側
Haskell で作る競技型イベントの裏側
 
Marp Next Theme: Colors
Marp Next Theme: ColorsMarp Next Theme: Colors
Marp Next Theme: Colors
 
Marp Next Tips !
Marp Next Tips !Marp Next Tips !
Marp Next Tips !
 
Haskell で CLI
Haskell で CLIHaskell で CLI
Haskell で CLI
 
貧者のための「cron」
貧者のための「cron」貧者のための「cron」
貧者のための「cron」
 
Build Dockferile with Haskell
Build Dockferile with HaskellBuild Dockferile with Haskell
Build Dockferile with Haskell
 
Elixir Programming with Type checking
Elixir Programming with Type checkingElixir Programming with Type checking
Elixir Programming with Type checking
 
MixML 作ってみる
MixML 作ってみるMixML 作ってみる
MixML 作ってみる
 
Elm でなんかつくる
Elm でなんかつくるElm でなんかつくる
Elm でなんかつくる
 
Haskell と Elm と JSON の話
Haskell と Elm と JSON の話Haskell と Elm と JSON の話
Haskell と Elm と JSON の話
 
ADVENTAR の Bot を作る with Haskell
ADVENTAR の Bot を作る with HaskellADVENTAR の Bot を作る with Haskell
ADVENTAR の Bot を作る with Haskell
 
GitHub での Haskell の色が変わったんで
GitHub での Haskell の色が変わったんでGitHub での Haskell の色が変わったんで
GitHub での Haskell の色が変わったんで
 
日記って続かないよね...
日記って続かないよね...日記って続かないよね...
日記って続かないよね...
 
Lisper はじめました (再)
Lisper はじめました (再)Lisper はじめました (再)
Lisper はじめました (再)
 
Marp colors
Marp colorsMarp colors
Marp colors
 
Marp Tips
Marp TipsMarp Tips
Marp Tips
 
Whitespcae 入門
Whitespcae 入門Whitespcae 入門
Whitespcae 入門
 
入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !
 
SKIコンビネーターによる処理系の作成
SKIコンビネーターによる処理系の作成SKIコンビネーターによる処理系の作成
SKIコンビネーターによる処理系の作成
 
Ruby4Ctf
Ruby4CtfRuby4Ctf
Ruby4Ctf
 

「7つの言語、7つの世界」を読む