I want to apply a 3 argument function in different ways based on a boolean value (one of the arguments).
I’d like to be able to apply it in an infix manner so I can chain it (example below). something like the following but that actually works.
f :: Bool -> a -> a -> a
f True i j = i
f False i j = j
... y `(f True)` z `(f False)` b
Do I need to have the Bool as the second variable? Or something else? I’m kind of lost.
P.S. the reason I wanted to do this was to have optional append function
The infix notation for functions with more than two arguments is possible but not very nice. In your case, given
you can write
It’s much easier (as suggested by others) to write:
then you can do
If you want to use
fyou should write:You can verify that