SlideShare a Scribd company logo
1 of 57
Download to read offline
温故知新 
2014/12/6 Techmix Hokkaido 
沼田 一哉 @kaznum 
http://www.flickr.com/photos/75905404@N00/5074611208
こんにちは 
•ぬまた かずや( @kaznum ) 
•札幌の平凡なプログラマ 
•妻と息子(3歳)の3人暮らし
家計簿 さな太郎 
https://github.com/kaznum/sanataro
見積もっ太郎 
https://github.com/estcosmo/mitsumottaro
僕のお題 
温故知新
温故知新 
“前に学んだことや昔の事柄 
をもう一度調べたり考えた 
りして、新たな道理や知識 
を見出し自分のものにする 
こと。” 
http://dictionary.goo.ne.jp/leaf/idiom/%E6%B8%A9%E6%95%85%E7%9F 
%A5%E6%96%B0/m0u/
古代の力学 
•アリストテレス
古典力学・電磁気学 
•コペルニクス 
! 
•ガリレオ・ガリレイ 
•ティコ・ブラーエ、ケプラー 
•ニュートン 
! 
•ファラデー、マクスウェル
量子力学 
•ド・ブロイ 
•ハイゼンベルグ 
•シュレーディンガー 
•プランク 
•ボーア 
•ディラック 
•フォン・ノイマン
量子力学・相対性理論の 
融合 
•ファインマン、朝永振一郎 
•ダイソン、シュウィンガー 
•湯川、南部、益川、小林、小柴
量子力学の応用 
•半導体 
•トランジスタ 
•バーディーン、ブラッテン、ショックレー 
•トンネルダイオード:江崎 
•発光ダイオード(青色):赤崎、天野、中村 
•量子コンピュータ
物理学に限らず、科学の進歩は 
「先人の経験と知恵」 
を拠り所としている
Ruby 
Rubyとの出会い 
(2000)
•オブジェクト指向 
•動的言語 
•メタプログラミング 
•関数型
理解が足りない 
もっと知りたい
•オブジェクト指向 
•動的言語 
•メタプログラミング 
•関数型
ref. 静的型付き関数型言語のススメ by tmaeda 
https://speakerdeck.com/tmaedax/jing-de-xing-fu-kiguan-shu-xing-yan-yu-falsesusume
純粋関数型プログラミング言語 
Haskell
Programming in Haskell 
(2007)
写経&練習問題
記録を残して公開
写経と練習問題の解答を 
Githubで公開 
https://github.com/kaznum/Programming-in-Haskell
• Referential Transparency 
(参照透過性) 
• Type Inference(型推論) 
• Functor 
• Applicative Functor 
• Monad
ぼくの想像を 
はるかに超えて 
深かった
@tmaedaの 
罠に 
嵌められた
プログラミング in OCaml 
(2007)
写経と練習問題の解答を 
Githubで公開 
https://github.com/kaznum/programming_in_ocaml_exercise
MatzLisp
“Lispはいつも時代の最先端に 
位置している” 
まつもとゆきひろ 
http://www.itmedia.co.jp/enterprise/articles/0801/29/news010_2.html
じゃあ Lisp に 
ついて勉強してみ 
よう!
• Common Lisp 
• Scheme 
• Emacs Lisp 
• Closure 
• などなど
“いまRubyがブームだが、Rubyは要す 
るにカッコのないLisp。XMLもぶ厚いカッ 
コのあるLisp。いろいろなプログラミン 
グ技法を見ますが、『Lispにあった』と 
いうことが多いです” 
竹内郁雄 
出典: @IT「Lispの仏さま 竹内郁雄の目力」 
http://www.atmarkit.co.jp/ait/articles/0807/23/news141.html
13年間も熟成した 
積読本 
https://www.flickr.com/photos/foolstopzanet/151936713/
Structure and Interpretation of Computer Programs 
(1996)
Structure and Interpretation of 
Computer Programs (SICP) 
MITの新入生向けの 
プログラミングの 
教科書
Structure and Interpretation of 
Computer Programs (SICP) 
あくまでも 
プログラミング言語 
の教科書
Structure and Interpretation of 
Computer Programs (SICP) 
説明用の言語として 
Scheme 
が採用されている
Structure and Interpretation of 
Computer Programs (SICP) 
Gerald Sussman 
Schemeの生みの親 
Harold Abelson 
MIT/GNU Schemeの生みの親
Structure and Interpretation of 
Computer Programs (SICP) 
世界的に高評価 
世界中の多くの大学で教 
科書として採用 
MIT150年の歴史の中で最も重要な発明の一つ 
(Boston Globe紙)
Structure and Interpretation of 
Computer Programs (SICP) 
“Harold Abelson and Gerald Jay Sussman, a pair of MIT computer science 
professors, wrote “Structure and Interpretation of Computer Programs,” which 
remains a classic for encouraging the teaching of not one specific programming 
language, but big-picture themes students could apply across a range of 
programming scenarios.” 
“MITのCSの教授であるAbelsonとSussmanはSICPを書いた。 
これは特定のプログラミング言語ではなく、学生が様々な 
プログラミングのシナリオに適用できる大局的なテーマを 
教えることを促す古典であり続けている。” 
(Boston Globe紙)
写経&練習問題を始めた
Structure and Interpretation of 
Computer Programs (SICP) 
MITが作成した新入 
生向けのプログラミ 
ングの教科書
Structure and Interpretation of 
Computer Programs (SICP) 
新入生向け
Structure and Interpretation of 
Computer Programs (SICP) 
ウソすぎ! 
新入生向け
Structure and Interpretation of 
Computer Programs (SICP) 
内容が濃厚
Structure and Interpretation of 
Computer Programs (SICP) 
オブジェクト指向 
関数型 
メタプログラミング、DSL 
遅延評価 
論理プログラミング 
ガベージコレクション
Structure and Interpretation of 
Computer Programs (SICP) 
Lispが常に時代の最先端 
であることがよくわかった
写経と練習問題の解答を 
Githubで公開 
[まだ第4章の途中(全5章)] 
https://github.com/kaznum/SICP
最近、そんなことしてます。
再認識したこと
“職人”
IT系のテクノロジーは 
急速に進歩
進歩についていける人の共通点 
いろいろな技術の 
•生まれた経緯 
•根本をなす概念・文化 
•他との違い 
について、とても詳しい
歴史(先人の経験と知恵) 
を学ぶのが 
! 
一番の近道(?)
その先・・・
“『既に創られた物理学』を学ぶことと、 
その物理学が創られた当時に創った本人 
が考えたことは全く違うんです。” 
! 
出典: 湯川秀樹著 「物理講義 」1977

More Related Content

Similar to Techmix2014 温故知新

SciREX「ナショナルイノベーションシステムに係る定量データとその分析手法」WSシリーズ第4回 サイエンスリンケージデータベースの使い方
SciREX「ナショナルイノベーションシステムに係る定量データとその分析手法」WSシリーズ第4回サイエンスリンケージデータベースの使い方SciREX「ナショナルイノベーションシステムに係る定量データとその分析手法」WSシリーズ第4回サイエンスリンケージデータベースの使い方
SciREX「ナショナルイノベーションシステムに係る定量データとその分析手法」WSシリーズ第4回 サイエンスリンケージデータベースの使い方Yasushi Hara
 
#経済学のための実践的データ分析 7. 論文データベースの使い方
#経済学のための実践的データ分析 7. 論文データベースの使い方#経済学のための実践的データ分析 7. 論文データベースの使い方
#経済学のための実践的データ分析 7. 論文データベースの使い方Yasushi Hara
 
(2017.8.27) Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見
(2017.8.27) Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見(2017.8.27) Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見
(2017.8.27) Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見Mitsutoshi Kiuchi
 
トピックモデルの基礎と応用
トピックモデルの基礎と応用トピックモデルの基礎と応用
トピックモデルの基礎と応用Tomonari Masada
 
IRC セミナー 数字が教えてくれないこと -特許/論文データベース分析入門-
IRC セミナー数字が教えてくれないこと-特許/論文データベース分析入門-IRC セミナー数字が教えてくれないこと-特許/論文データベース分析入門-
IRC セミナー 数字が教えてくれないこと -特許/論文データベース分析入門-Yasushi Hara
 

Similar to Techmix2014 温故知新 (6)

科学技術・学術政策研究所講演20170731ver.2(公開用修正版)
科学技術・学術政策研究所講演20170731ver.2(公開用修正版)科学技術・学術政策研究所講演20170731ver.2(公開用修正版)
科学技術・学術政策研究所講演20170731ver.2(公開用修正版)
 
SciREX「ナショナルイノベーションシステムに係る定量データとその分析手法」WSシリーズ第4回 サイエンスリンケージデータベースの使い方
SciREX「ナショナルイノベーションシステムに係る定量データとその分析手法」WSシリーズ第4回サイエンスリンケージデータベースの使い方SciREX「ナショナルイノベーションシステムに係る定量データとその分析手法」WSシリーズ第4回サイエンスリンケージデータベースの使い方
SciREX「ナショナルイノベーションシステムに係る定量データとその分析手法」WSシリーズ第4回 サイエンスリンケージデータベースの使い方
 
#経済学のための実践的データ分析 7. 論文データベースの使い方
#経済学のための実践的データ分析 7. 論文データベースの使い方#経済学のための実践的データ分析 7. 論文データベースの使い方
#経済学のための実践的データ分析 7. 論文データベースの使い方
 
(2017.8.27) Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見
(2017.8.27) Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見(2017.8.27) Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見
(2017.8.27) Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見
 
トピックモデルの基礎と応用
トピックモデルの基礎と応用トピックモデルの基礎と応用
トピックモデルの基礎と応用
 
IRC セミナー 数字が教えてくれないこと -特許/論文データベース分析入門-
IRC セミナー数字が教えてくれないこと-特許/論文データベース分析入門-IRC セミナー数字が教えてくれないこと-特許/論文データベース分析入門-
IRC セミナー 数字が教えてくれないこと -特許/論文データベース分析入門-
 

Techmix2014 温故知新