演算子
単項演算子(英: unary operator)とは、被演算子が一つだけの演算を表す演算子。その記法には、通常は被演算子の前に単項演算子を置く前置記法(ポーランド記法)を用い、被演算子を明示するための括弧 "( )" を伴うことも多い。
代表的な単項演算子として、以下がある。
・平方根を表す根号 "√ "
・負を表す(減算ではない)負符号(例: −3)
・絶対値を表す2本の縦線(例: |x|)
・階乗を表す感嘆符(例: n!)(例外的に後置記法で書く)
関数 f(x) の "f( )" も単項演算子であり、符牒となる文字列 "f" を関数子などと呼ぶ場合もある。関数子としては任意の文字列を使用することができ、代表的なものとして三角関数 "sin", "cos", "tan" などが挙げられる。微分作用素の "d/dx" または "D" や、差分作用素 "Δ" も単項演算子である。関数に対する「′」も微分作用素である。例えばf(x)の微分をf′(x)と表せる。 また、定数 a を与えるごとに(a が代入可能である限りにおいて)対数関数 loga x が考えられるが、このとき loga は定数一つを含む形で単項演算子として働く(そのような場合、a は e や 10 などに固定されているため、文脈上明らかな場合は省略を受け、単に log と記して扱われることも少なくはない)。ただし、仮に a をも変化させて扱うならば loga x なる式において log は二つの被演算子 a と x を持つ二項演算子(後述)と解されることになる。
代入やインクリメントといった、動作に応じて変化していくプログラミング言語の変数としての機能に対応した演算子も存在する。
このほかにも、プログラミング言語によっては文字列、正規表現、参照、配列、動的メモリ確保、名前空間など、数学的な範囲を超えた多様な分野について、それを操作するための演算子が存在する。
C++やC#などのように、プログラミング言語の中には既存の演算子に利用者(プログラマー)が自分で新たな意味を定義することができるものがある(演算子多重定義)。またSmalltalk、Haskell、OCaml、F#、ALGOLおよびFortran(Fortran 90 以降)など、利用者が自分で新たな演算子を定義することができる言語もある(利用者定義演算子)。これらはうまく使いこなせばコードの記述性や直感性を向上させるのに有用だが、乱用すると混乱を招きかねない。Javaのように言語仕様をシンプルに保つため、あえて演算子多重定義をサポートしなかった言語もある。