title: Using function like OOP method in Haskell
body: <p>I'm studying Haskell these days, and got a idea using function like OOP method.</p>
  
  <p>First, define a operator as below:</p>
  
  <pre><code>(//) :: a -&gt; (a -&gt; b) -&gt; b
  x // f = f x
  </code></pre>
  
  <p>As you can see, this operator reverses the order of function <code>f</code> and argument <code>x</code> then applies it. For example, <code>equals</code> can be defined as:</p>
  
  <pre><code>equals :: Eq a =&gt; a -&gt; a -&gt; Bool
  equals = \x -&gt; \y -&gt; x == y
  
  comparison = (1 + 2) // equals 3 -- True
  </code></pre>
  
  <p>Now here is my question. <strong>Is it good approach using Haskell function like OOP method?</strong> That means inversion of function and (first) argument is good or not.</p>
  
  <p><strong>UPDATE</strong></p>
  
  <p>Here is the case of backtick(<code>`</code>) is not available.</p>
  
  <pre><code>data Person = Person { name :: String }
  myself = Person "leafriend"
  </code></pre>
  
  <p>then</p>
  
  <pre><code>&gt; name myself
  "leafriend"
  &gt; myself // name
  "lefirend"
  &gt; myself `name`
  ERROR - Syntax error in expression (unexpected end of input)
  </code></pre>