Вы видите различие со следующим примером:
<a href="http://www.google.co.uk/" onclick="return (confirm('Follow this link?'))">Google</a>
Нажатие "Okay" возвращает true, и по ссылке переходят. Нажатие на "Cancel" возвращает false и не переходит по ссылке. Если JavaScript отключен, по ссылке обычно переходят.
Вы можете написать функцию переворота, что-нибудь например:
let flip f x y = f y x
List.map (flip (-) 1) [2;4;6]
Возможно, у меня неправильный синтаксис, я плохо владею F #.
Есть никаких «секций операций» в F #, а-ля Haskell, ни аргументов-заполнителей (очевидно, а-ля Arc). Вы можете использовать комбинатор «переворота», как предложено в другом ответе, чтобы изменить порядок аргументов и затем частично применить первый (теперь второй) аргумент.
Но я бы просто использовал
fun x -> x / 2
Если вы не играете в код-гольф , Не думаю, что попытка избавиться от еще нескольких персонажей здесь ничего вам даст.
Решение flip
, предложенное Логаном Капальдо , также можно записать с помощью оператора (здесь >.
):
let (>.) x f = (fun y -> f y x)
List.map (1 >. (-)) [2;4;6]
Или, если вы предпочитаете операнды наоборот:
let (>.) f x = (fun y -> f y x)
List.map ((-) >. 1) [2;4;6]
Изменить: Использование оператора, который «больше похож на заполнитель» (здесь > - <
), очень приближает вас к вашему предлагаемый синтаксис:
List.map ((-) >-< 1) [2;4;6]
'_', к сожалению (?) не допустимый символ оператора в F # .