Biorąc pod uwagę funkcję użytkowania Infix:`flip` argumenty inline aplikacji infix
let f a b = (a+10, b)
f 4 5
=> (14,5)
4 `f` 5
=> (14,5)
Argumenty mogą być przerzucony przez zdefiniowanie funkcji pomocnika:
let g = flip f
4 `g` 5
=> (15,4)
to możliwe, aby to zrobić inline ?
4 `flip f` 5
=> parse error on input `f'
4 `(flip f)` 5
=> parse error on input `('
Moje przypadek użycia jest Control.Arrow.first
. Zamiast
(+10) `first` (7,8)
(17,8)
wolałbym rozwiązanie do przodu aplikacja stylu jak
(7,8) `forwardFirst` (+10)
bez konieczności pisania
let forwardFirst = flip first
Jaki jest Twój używać przypadku, aby tego dokonać, biorąc pod uwagę, że już zdefiniowałeś 'g'? –
Właśnie dodałem mój przypadek użycia. :) –
Nie jest to bezpośrednia odpowiedź na twoje pytanie, ale możesz ją zapisać jako '(7,8) & _1% ~ (+10)' przy użyciu obiektywu. Oczywiście możesz po prostu użyć '&' i napisać to jako '(7,8) i pierwsze (+10)'. Czy jest to coś podobnego do tego, czego chcesz? – snak