モナドの組成物の全体のポイントは、あなたが求めている正確に何をすることが許可されていることです。定額Javascriptのコードを書くときに使用する、すなわち、非物象化1 - 具体的には
は、のは、最初の(暗黙の)Javascriptのモナドを見てみましょう。ここで、あなたはあなたが最初のアクションの結果に応じて、重要なのは、その効果、変化(getElementById().value
の結果)を含む計算、ことがわかります
var s = document.getElementById("myTextBox").value; // effect: looking at current DOM state
if (s == "foo")
{
document.getElementById("output").textContents = "OK." // effect: changing the DOM
} else {
window.alert("What?"); // effect: popup dialog
}
を書くことができます。その他、具体化さモナドで
、あなたは正確に同じことを行うことができます。例えばMaybe
で(私は人気のJavascriptのモナドライブラリがどのように見えるかわからないので、ここではHaskellの構文を使用して):
parse :: String -> Maybe Command
parse = ...
reply :: String -> Maybe String
reply s = do
cmd <- parse s -- effect: fails if `s` is not a valid command
case cmd of
Say s' -> Just s' -- effect: succeeds with s'
_ -> Nothing -- effect: failure
同じことがここに起こっている:parse s
の結果に応じて、次の効果があることができ成功の失敗。
あなたはちょうど私が私がnullチェックのいくつかの種類のいずれかの枝の上限1を見てきたように、ほぼすべてのオンラインソースのどちらかについて興味がどちらか.... –
を説明しました。他の場合は模倣することができますか? – bresson
あなたがしていることすべてがヌルチェックであれば、あなたは 'たぶん'を使用しているはずです。分岐はここtypescriptですhttps://tech.evojam.com/2016/03/21/practical-intro-to-monads-in-javascript-either/にまともな探したとえば何 'Either'は、* *のためです...です –