Pythonから継続渡しスタイルをどのように促進できますか?
(正しい表現だと思います)
私のコードは乱雑になり始めていmap
ます。filter
lambda
(lambda a,b: (lambda c:(lambda d: d*d)(c-b))(a*b))(5,6)
「パイプライン式」は、さまざまな言語で使用されています。たとえば、次のとおりです。
F#ソリューション (例: |>
)
let complexFunction =
2 (* 2 *)
|> ( fun x -> x + 5) (* 2 + 5 = 7 *)
|> ( fun x -> x * x) (* 7 * 7 = 49 *)
|> ( fun x -> x.ToString() ) (* 49.ToString = "49" *)
Haskellソリューション (例: do
、pipes )
main = do
hSetBuffering stdout NoBuffering
str <- runEffect $
("End of input!" <$ P.stdinLn) >-> ("Broken pipe!" <$ P.stdoutLn)
hPutStrLn stderr str
JavaScript (例: async.js ):
async.waterfall([
function(callback) {
callback(null, 'one', 'two');
},
function(arg1, arg2, callback) {
// arg1 now equals 'one' and arg2 now equals 'two'
callback(null, 'three');
},
function(arg1, callback) {
// arg1 now equals 'three'
callback(null, 'done');
}
], function (err, result) {
// result now equals 'done'
});
ただし、この最後の戦略は、非同期関数の応答解決のためのものであることを理解しています (コールバック地獄を参照)。