也許標題有點令人困惑,所以讓我用一個例子來解釋:
假設我想以漂亮的方式 "列印 "字串行。
假設我想以一種很好的方式 "列印 "幾行字串。作為輸入,我將給出一個包含一對整數和字串的串列(在下面這個例子中。[(1,a), (2,b), (3,c)])。這將給出輸出:
|NUMBER|LETTER|
---------------
|1|A |
|2 |B |
|3 |C |
---------------
我的嘗試(其中我使用了偽代碼函式printLine和printRow,它們的作用正如其名):
prettyString :: [(Int,String)] -> [String]
prettyString [] = [printLine] 。
prettyString t@(top:rows) = printRow : prettyString rows
現在終于說到我的觀點了:上面的代碼在遞回中進行,將給出一個類似于
的輸出。|1 |A|
|2 |B !
|3 |C |
---------------
所以它并沒有帶走標題(這很合理,因為我沒有對它做任何事情)。但我想不出一個辦法,如何在頂部手動添加這些行。這樣,在進入遞回之前,我可以做一個 "初始命令",并且已經將這些字串添加到串列中。
希望有人能理解我的問題。
uj5u.com熱心網友回復:
你在一個輔助函式中渲染了這些行,你定義了一個寫頭的外層函式,所以:
prettyString :: [(Int, string)] -> [String]
prettyString xs = "|NUMBER|LETTER|"/span> : printLine : prettyString' xs
prettyString' :: [(Int,String)] -> [String]
prettyString' [] = [printLine] 。
prettyString' t@(top:rows) = printRow : prettyString' rows
uj5u.com熱心網友回復:
制作另一個函式,將標題附加到prettyString的輸出,像這樣:
prettyTable :: [(Int, String)] -> [String]
prettyTable t = ["|NUMBER|LETTER|"/span>, printLine] prettyString t
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/329819.html
標籤:
下一篇:我怎樣才能解決這個問題呢?
