Skip to Content
JavaScriptで学ぶ関数型プログラミング
book

JavaScriptで学ぶ関数型プログラミング

by Michael Fogus, 和田 祐一郎
January 2014
Intermediate to advanced
352 pages
6h 34m
Japanese
O'Reilly Japan, Inc.
Content preview from JavaScriptで学ぶ関数型プログラミング
193
7.2 純粋と不純を分離する
ことができる
JavaScript
では、このような問題は非常にやっかいなものです。つま
り、コントロールできる範囲の外のデータに頼るような関数を書くことは、わざわざ
混乱を招くためのレシピと言えます。通常は、予測できない外部条件に頼るテスト関
数を書く場合は、すべてのテストケースはテスト目的のために全く同じ条件を設定す
る必要があります。可能な限り純粋性のルールに則った関数型スタイルは、テストが
より簡単なだけではなく、一般的に理解しやすいプログラムを書くことの一助となり
ます。
7.2
純粋と不純を分離する
 そもそも
JavaScript
Math.rand
メソッドは純粋関数ではないため、このメソッド
を使用するすべての関数は純粋ではなくなり、多くの場合はテストがより複雑になり
ます。純粋な関数は、入力値とそれに対応する予測出力値のテーブルデータを作成し
てテストします。純粋性を損なう原因となる他の
JavaScript
のメソッドや関数とし
ては、
Date.now
console.log
、そして
this
やグローバル変数の使用も同じく原因と
して挙げられます(原因はこれらの他にも存在します)。しかし
JavaScript
は参照で
オブジェクトの受け渡しを行うため、実際には、オブジェクトもしくは配列を引数に
取るすべての関数が純粋性を損う可能性を持っています。本章で後ほど、このような
問題をどのように低減できるかを紹介します。
JavaScript
は決して完全な純粋性を持
つことはありませんが(そして我々もそれを必要としません) ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

プログラミングRust

プログラミングRust

Jim Blandy, Jason Orendorff, 中田 秀基
ユーザーストーリーマッピング

ユーザーストーリーマッピング

Jeff Patton, 川口 恭伸, 長尾 高弘
データ分析によるネットワークセキュリティ

データ分析によるネットワークセキュリティ

Michael Collins, 中田 秀基, 木下 哲也

Publisher Resources

ISBN: 9784873116600Other