Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Check these out next
なれる!SE 読んでみた
Takafumi Yoshida
ぱろっと、Padrinoやめるってよ
parrotstudio
Java女子部 will take over the world (野望)
Ayana Yokota
Java女子部よこな自己紹介
Ayana Yokota
「型の理論」と証明支援システム -- COQの世界
maruyama097
Fast and Probvably Seedings for k-Means
Kimikazu Kato
Pythonで機械学習入門以前
Kimikazu Kato
擬人化で考えるオブジェクト指向
yamada28go
1
of
38
Top clipped slide
希望の関数と絶望の副作用
Sep. 2, 2013
•
0 likes
3 likes
×
Be the first to like this
Show More
•
2,153 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Technology
2013/08/31に発表した資料 https://github.com/parrot-studio/webcafe4-side-effect
parrotstudio
Follow
Advertisement
Advertisement
Advertisement
Recommended
Operator's Side
Takumi Murano
311 views
•
26 slides
データベース設計徹底指南
Mikiya Okuno
114K views
•
132 slides
リレーショナルな正しいデータベース設計
Mikiya Okuno
20.1K views
•
114 slides
きつねさんでもわかるLLVM読書会amagasaki.rb第5章
Takayuki Kurosawa
1.9K views
•
71 slides
Swift入門おさらい
GMO TECH 株式会社
3K views
•
82 slides
「もうなにもこわくない」関数型言語 〜ふつうのプログラマが関数型言語を知るべき理由・reload〜
parrotstudio
2.3K views
•
50 slides
More Related Content
Viewers also liked
(20)
なれる!SE 読んでみた
Takafumi Yoshida
•
2.8K views
ぱろっと、Padrinoやめるってよ
parrotstudio
•
2K views
Java女子部 will take over the world (野望)
Ayana Yokota
•
1.8K views
Java女子部よこな自己紹介
Ayana Yokota
•
1.9K views
「型の理論」と証明支援システム -- COQの世界
maruyama097
•
7.4K views
Fast and Probvably Seedings for k-Means
Kimikazu Kato
•
1.8K views
Pythonで機械学習入門以前
Kimikazu Kato
•
39.7K views
擬人化で考えるオブジェクト指向
yamada28go
•
3.7K views
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
parrotstudio
•
15.2K views
インターフェイスによるオブジェクト指向設計
Akineko Shimizu
•
6.7K views
たのしい高階関数
Shinichi Kozake
•
11.7K views
Gitはじめの一歩
Ayana Yokota
•
53.8K views
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
Masahiro Wakame
•
12.8K views
文章を読み、理解する機能の獲得に向けて-Machine Comprehensionの研究動向-
Takahiro Kubo
•
13.9K views
良質なコードを高速に書くコツ
Shunji Konishi
•
9.2K views
Tech-Circle #18 Pythonではじめる強化学習 OpenAI Gym 体験ハンズオン
Takahiro Kubo
•
13K views
ネタプログラミング言語クリエイターYouma (Gunma.web #8 2012/03/03)
parrotstudio
•
2K views
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
•
159.5K views
オブジェクト指向できていますか?
Moriharu Ohzu
•
235.9K views
オブジェクト指向設計の原則
Toru Koido
•
5.6K views
More from parrotstudio
(10)
エンジニアがTRPGをやるべき理由 〜隣り合わせの遊びと技術〜 (Gunma.web #12 2013/02/09)
parrotstudio
•
1.8K views
(´・ω・`)としたーは衰退しました (Gunma.web #11 2012/11/23)
parrotstudio
•
1.1K views
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08)
parrotstudio
•
949 views
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
parrotstudio
•
1.4K views
Signs;Gate - RESTfulなサイトの作り方 (Gunma.web #6 2011/09/03)
parrotstudio
•
1.4K views
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
parrotstudio
•
824 views
俺の体がこんなにすっきりしているわけがない ~5分でわかる催眠プログラミング~ (Gunma.web #3 2010/12/11)
parrotstudio
•
2.3K views
「一番いいおすすめを頼む」 ~5分でわかるレコメンドエンジンの基礎~ (Gunma.web #3 2010/12/11)
parrotstudio
•
4.9K views
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
parrotstudio
•
1.5K views
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
parrotstudio
•
1.2K views
Advertisement
Recently uploaded
(20)
SoftwareControl.pdf
ssusercd9928
•
15 views
統計学の攻略_推測統計学の考え方.pdf
akipii Oga
•
281 views
HTTPの仕組みについて
iPride Co., Ltd.
•
11 views
AIEXPO_CDLE名古屋紹介
KotaMiyano
•
4 views
ネットワークパケットブローカー市場.pdf
HinaMiyazu
•
9 views
Forguncy製品概要.pptx
フォーガンシー
•
151 views
社内ソフトスキルを考える
infinite_loop
•
91 views
触感に関わる共感覚的表現と基本6感情の対応関係の検証
Matsushita Laboratory
•
22 views
統計学の攻略_正規分布ファミリーの全体像.pdf
akipii Oga
•
276 views
Transformerについて解説!!
Yosuke Horio
•
4 views
【DL輪読会】DINOv2: Learning Robust Visual Features without Supervision
Deep Learning JP
•
80 views
通信プロトコルについて
iPride Co., Ltd.
•
7 views
TestSIP (1).pdf
DeependraSingh712859
•
2 views
GitHub と Azure でアプリケーションとインフラストラクチャの守りを固めるDevSecOps
Kazumi IWANAGA
•
6 views
モバイル・クラウド・コンピューティング-データを如何に格納し、組み合わせ、情報として引き出すか
Masahiko Funaki
•
2 views
JSTQB_テストプロセスの概念モデル.pdf
akipii Oga
•
274 views
Voyager: An Open-Ended Embodied Agent with Large Language Models
harmonylab
•
20 views
GitHub最新情報キャッチアップ 2023年6月
Kazumi IWANAGA
•
0 views
開発環境向けEKSのコスト最適
ducphan87
•
0 views
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
NTT DATA Technology & Innovation
•
192 views
希望の関数と絶望の副作用
希望の関数と絶望の副作用 希望の関数と 絶望の副作用 (非)⽇常編 ぱろっと(@parrot-studio) 2013/08/31
希望の関数と絶望の副作用 Profile ぱろっと(T.Tachiki) @parrot̲studio parrot-studio.com プログラマっぽい何か (⽐較的)⾔語マニア
希望の関数と絶望の副作用 今⽇の テーマ
希望の関数と絶望の副作用 副 作 用
希望の関数と絶望の副作用 you�may�say... "また関数型です か?(´-ω-)"
希望の関数と絶望の副作用 だが待っ てほしい
希望の関数と絶望の副作用 Scalaとか Haskellの 話はしない
希望の関数と絶望の副作用 この辺も今⽇はどうでもいい 参照透明性 遅延評価 モナド etc…
希望の関数と絶望の副作用 副作用って? ある機能がコンピュータの(論 理的な)状態を変化させ、それ 以 降で得ら れ
る結 果に影 響を 与えることをいう。 代 表 的な例は変 数へ の値の代 ⼊である。 [「副作用�(プログラム)�-�Wikipedia」より引用]
希望の関数と絶望の副作用 副作用が「ある」とは? 何かをした結果、状態が変化す る 同じ値を渡しても、同じ結果と は限らない 「破壊的である」
希望の関数と絶望の副作用 副作用が「ある」例 ���������� ��������������������� �������� ��� ���������� ������������� ������������� ����������� ��������������
希望の関数と絶望の副作用 副作用が「ない」とは? 何かをしても、状態が変化しな い ある値を渡せば、必ず対応する 値が返る 「非破壊的である」
希望の関数と絶望の副作用 副作用が「ない」例 ��������������������� ����������� ��� �������������������� �������������������� �������������������� ��������������������������������
希望の関数と絶望の副作用 余談 Rubyではメソッド名で区別できる 「場合もある」 ���������� ���������������������������������� �������������������������������� ����������������������������������� ������������������������������
希望の関数と絶望の副作用 ⼀般的にI/Oが絡むものは副 作用がある �������������������� ������������������������� ��������������������� �������������������������
希望の関数と絶望の副作用 あまりコー ドに興味が ない?
希望の関数と絶望の副作用 な ら ば
希望の関数と絶望の副作用 「テスト」 という観点 で考える
希望の関数と絶望の副作用 "副作用がないもの"のテスト ⼊⼒を与えて出⼒をみるだけ 場合によってはコードを⾒るだ けでバグの有無がわかる 結合テストもすぐできる 遊ぶ時間が作れる 精神的に安定
希望の関数と絶望の副作用 簡単 (`・ω・´)
希望の関数と絶望の副作用 "副作用があるもの"のテスト まず環境を揃える 次に⼊⼒を与えて出⼒をみる 例外が発⽣した場合の動作とか もチェックする 結合すると問題が出やすい 遊ぶ時間が削られる 精神的に追い込まれる
希望の関数と絶望の副作用 めんどい (´-ω-)
希望の関数と絶望の副作用 "副作用のない世界" 「理想的関数型 プログラミングの世界」 = 「全く副作用がない」
希望の関数と絶望の副作用 but
希望の関数と絶望の副作用 "現実"に "I/Oのない システム"は 存在しない
希望の関数と絶望の副作用 な ら ば
希望の関数と絶望の副作用 副作用を 局所的に 押さえ込む
希望の関数と絶望の副作用 あまり良くない例 read 処理 write read 処理 write ...
希望の関数と絶望の副作用 ⽐較的良い例 ⼀括read 副作用のない処理1 副作用のない処理2 副作用のない処理3 ... ⼀括write そもそも、⼀括にしないとトランザクションの問題も(´-ω-)
希望の関数と絶望の副作用 他にも、テストできるように 引数を考えるとか �������������� ������������������ ������������������������������������� ��� ���������������������� ������������������������������ ������������������� ��������������������������������� ���
希望の関数と絶望の副作用 "副作用のないシステム" 大きな系として 「外」から⾒たときに 「⼊⼒に対して出⼒が⼀ 定」というのも大事 (APIやライブラリ等)
希望の関数と絶望の副作用 "副作用のないシステム" 並列処理では特に重要 Webシステムもリクエストを 並列で処理しているのを お忘れなく(`・ω・´)
希望の関数と絶望の副作用 繰り返し ますが
希望の関数と絶望の副作用 大事なこと 関数型⾔語を知らなくても、 関数型の考え⽅を知っていると "堅牢なシステム"を作りやすい
希望の関数と絶望の副作用 まずは「副作用 があるか?」を 意識してみては どうでしょう (´・ω・)?
希望の関数と絶望の副作用 ありがとうご ざいました (´・ω・)っ旦~
希望の関数と絶望の副作用 おまけ 「代⼊」を⼀度も使わない Brainf**kインタプリタ�by�Scala http://parrot.hatenadiary.jp/ entry/2013/08/06/121645
希望の関数と絶望の副作用 参考までに・・・ Q.�「ダンガンロンパ 希望の学園 と絶望の⾼校⽣」とは? A.�限りなく絶望的な状況から希望 を勝ち取る物語です(`・ω・´) http://www.danganronpa.com/
Advertisement