関数マップを表す単純な機能があります:
let f a b = fold_right (fun x y -> a(x)::y) b []
a(x)::y の括弧の意味を知りたい
ありがとう!
関数マップを表す単純な機能があります:
let f a b = fold_right (fun x y -> a(x)::y) b []
a(x)::y の括弧の意味を知りたい
ありがとう!
x
の周りのかっこにa(x)
は何の意味もありません - それらは完全に冗長です。コードの作成者は、次のように書いてもかまいません。
let f a b = fold_right (fun x y -> a x :: y) b []
よく遭遇するのは、ペアのリストのペアを扱うことです。人工的な例:
res, (k, v)::acc
res
は、 と 連想リストのペアを返すことを意味します(k, v)::acc
。私は通常、意味を捉える最小量の括弧を使用 (および好み) しますが、可読性のために括弧を追加することを勧める人もいます。
「その場で」ペアを計算する場合、追加の括弧は必要ありません。これは、関数の適用とほとんどの演算子が,
andよりも優先順位が高いためです::
-- 人為的な例:
f x, (a x, v+1)::acc