部分写像


数学において部分写像(ぶぶんしゃぞう、英: partial mapping)あるいは部分函数(英: partial function)は適当な部分集合上で定義された写像である。即ち、集合 X から Y への部分写像 f は X の任意の元に Y の元を割り当てることが求められる写像 f: X → Y の概念を一般化して、X の適当な部分集合 X' の元に対してのみそれを要求する。X′ = X となる場合には f は全域写像 (total function) と呼ばれ、これは写像と同じ概念を意味する。部分写像を考えるときには、その定義域 X' がはっきりとは分かっていないという場合もよくある。
基本概念
部分写像 f に対し f(x) が定義される値 x 全体の成す集合(上記の X')を f の定義域と呼び、D(f) や Def(f) のように表すのが典型的である。これに対し集合 X は f の始域(あるいは圏論においては「域」とも)呼ばれる。英語等では両者とも単に f の domain と呼ぶことがあるので注意が必要である(定義域を明確に domain of definition と呼ぶ流儀もあるが)。同様に codomain が f の像(値域)と終域(圏論では余域とも)の何れかの意味で用いられる。
始域 X, 終域 Y の部分写像を f: X ⇸ Y のように縦棒付き矢印であらわすことがある。あるいは
部分関数
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/12 05:44 UTC 版)
Scalaの部分関数 (partial function) は数学における同名の概念をもとにして生まれた機能である。具体的には、定義域が制限された関数に相当する。以下は [-1, +1] の範囲で2乗を計算する部分関数の例である。 val myPartialSquare: PartialFunction[Double, Double] = { case x if -1 <= x && x <= 1 => x * x}println(myPartialSquare(-0.5)) // 0.25println(myPartialSquare(0.9)) // 0.81println(myPartialSquare.isDefinedAt(1)) // trueprintln(myPartialSquare.isDefinedAt(-10)) // falseprintln(myPartialSquare(1.1)) // MatchError
※この「部分関数」の解説は、「Scala」の解説の一部です。
「部分関数」を含む「Scala」の記事については、「Scala」の概要を参照ください。
- 部分関数のページへのリンク