Skip to content

Latest commit

 

History

History
39 lines (33 loc) · 949 Bytes

README.md

File metadata and controls

39 lines (33 loc) · 949 Bytes

Substitute

Pursuit

Substitute is an advanced string interpolation library that allows you to customize the behaviour of your interpolation function. It includes features such as removing whitespace from multi-line strings so they can be indented like the rest of your code, and preserving indentation levels when inserting multi-line strings. Here is an example showing both of these features.

-- str1 = str2

str1 =
  substitute
    """
    ${name} :: Int -> Int -> ${type}
    ${name} a b =
      let
        ${lets}
      in
        c - d
    """
    { name: "myFunction"
    , "type": "Int"
    , lets:
        """
        c = a + b

        d = a * b
        """
    }

str2 =
  """myFunction :: Int -> Int -> Int
myFunction a b =
  let
    c = a + b

    d = a * b
  in
    c - d
"""