Skip to content

ursi/purescript-substitute

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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
"""