haskell 能像python """ """ 那樣聲明字元串嗎?
03-01
我想弄個這個東西:
python可以這樣做:"""HHHHHHHHHHH
HHHHHHHHHHHHEEEEEEEEEEEE E E
E E ELLLLLLLLLLLLLLLL"""
haskell 有類似的方式嗎?感覺寫
和空格好煩躁啊.
raw-strings-qq庫支持多行,引號,,等等。
這個得上Template Haskell
-- Main.hs
{-# LANGUAGE QuasiQuotes #-}
module Main where
import Str
longString = [str|This is a multiline string.
Its many lines long.
It contains embedded newlines. And Unicode:
?ν ?ρχ? ?ν ? Λ?γο?
It ends here: |]
main = putStrLn longString
-- Str.hs
module Str(str) where
import Language.Haskell.TH
import Language.Haskell.TH.Quote
str = QuasiQuoter { quoteExp = stringE }
這樣?
file = [q|
the first line
the second line
the third line|]
How can I write a multiline strings in haskell
用TH的話可以用一些高級的多的特性,還可以寫在外部文件讓編譯器編譯的時候去讀然後靜態編譯進去,還可以做點手腳再編譯進去,比Python不知道高到哪裡去了
let str = "line 1
line 2
line 3"
ghc表示只要語法擴展夠多,要什麼特性不是問題。
推薦閱讀:
※EDSL相關雜記(2)
※Haskell 怎麼推導函數類型呢?
※截至2016年,中文圈內有沒有非常好的函數式編程語言講義?
※為什麼函數式語言中all odd [] 得到True?
※有沒有比較實用、成熟的 Haskell 應用?
TAG:Haskell |