Похоже, что они испортили приоритет ->
, так что он на самом деле интерпретируется как
Js.String.match([%re "/(\\w+:)*(\\w+)/i"], "int:id")
|> (Belt.Option.getExn->Array.get(1));
С указанными операторами:
Array.get(Belt.Option.getExn, 1, Js.String.match([%re "/(\\w+:)*(\\w+)/i"], "int:id"));
или с частичным применением более явнымТак как синтаксис Reason немного запутан в отношении карри:
let f = Array.get(Belt.Option.getExn, 1);
f(Js.String.match([%re "/(\\w+:)*(\\w+)/i"], "int:id"));
Замена ->
на |.
работает.Как и замена |>
на |.
.
, я бы посчитал это ошибкой в Reason, но в любом случае рекомендовал бы вообще не использовать «fast pipe», так как это вызывает много путаницы дляочень мало пользы.