Haskellでは、Monadは一連の計算を表す抽象化であり、クリーンで構成可能な方法で副作用をチェーンして処理できます。モナドは、モナディックコンテキストで値をラップする「return」の2つの主要な操作で定義されます。 `>> =`（bind）は、モナディック値に関数を適用し、コンテキストを組み合わせます。

機能プログラミングにおけるモナドの概念は、カテゴリー理論のモナドの数学的概念に触発されていますが、それらはまったく同じではありません。
In Haskell, a monad is an abstraction representing a series of computations, allowing for chaining and handling side effects in a clean and composable way.  Monads are defined by two main operations: `return`, which wraps a value in a monadic context, and `>>=` (bind), which applies a function to a monadic value and combines the contexts. 

The concept of monads in functional programming is inspired by the mathematical concept of a monad from category theory, but they are not exactly the same.