我知道「xs」可以用來表示列表中其餘元素 ,但我完全不知道「ls」在Haskell中的含義是什麼?「ls」在Haskell中的含義是什麼?
回答
ls
不是預定義的東西。無論你如何綁定它,就像xs
。
舉例來說,我想你已經看到的例子是這樣的:
sum [] = 0
sum (x:xs) = x + sum xs
變量xs
,你就在這裏定義,得到勢必(會有的值)列表的其餘部分因爲模式(x:xs)
。但是,這同樣可以被寫爲:
sum [] = 0
sum (l:ls) = l + sum ls
我們不喜歡叫可變l
雖然,因爲它是與數字1
(甚至管上真的搞砸了字體符號|
)容易混淆。
我們甚至可以這樣寫:
sum [] = 0
sum (head:tail) = head + sum tail
,我們重用的內置功能,前奏和head
的tail
名稱,但這樣勢必會導致混亂。
用於命名列表變量的haskell中的經驗法則是添加一個-s,就像在英語中使用常規復數一樣。所以如果你有一個名單x
元素,你的名字是xs
。如果您有l
,則l
的列表將爲ls
。
這是完全一樣的東西。關於名稱xs沒有什麼特別的;它只是約定來分別命名列表x和xs,a和as,l和ls等的頭部和尾部。
我使用ls
而不是xs
作爲l ists的特例。
我使用'xss'作爲:) – 2012-04-29 19:09:21
@benmachine:也許我已經做了太多的web工作,但是我不能在不考慮跨站腳本的情況下查看'xss':P。 – 2012-05-01 00:08:23
- 1. Haskell中「fac」的含義是什麼?
- 2. Haskell中「〜」的含義是什麼?
- 3. '#type'在Haskell外部函數接口中的含義是什麼?
- 4. <$>在Haskell中的含義是什麼?
- 5. 什麼是LS-F(LS --classify)
- 6. 運行後符號的含義是什麼:ls in Vim?
- 7. Haskell中=>符號的含義是什麼?
- 8. 「!!」的含義在Haskell
- 9. `git ls-files -s`輸出中不同字段的含義是什麼?
- 10. 是什麼()在Haskell
- 11. _._在包裝中的含義是什麼?
- 12. 「++」在PHP中的含義是什麼?
- 13. tipbot在LKML中的含義是什麼?
- 14. information_schema.TABLES.DATA_FREE在MySQL中的含義是什麼?
- 15. * width:auto在CSS中的含義是什麼?
- 16. 什麼是::在簽名中的含義?
- 17. $$在shell中的含義是什麼?
- 18. *〜在glob中的含義是什麼?
- 19. uv.zw在HLSL中的含義是什麼?
- 20. '</'在JavaScript中的含義是什麼?
- 21. 「LBS」在WAI中的含義是什麼?
- 22. 「$ .something」在jquery中的含義是什麼?
- 23. @const在JavaScript中的含義是什麼?
- 24. 「$ {x %% *}」在sh中的含義是什麼?
- 25. 「EGPCS」在PHP中的含義是什麼?
- 26. 「|&」在bash中的含義是什麼?
- 27. 「var」在C#中的含義是什麼?
- 28. 「=>」在JavaScript中的含義是什麼?
- 29. __FILE__在Ruby中的含義是什麼?
- 30. %s在Python中的含義是什麼?
如果你正在解構一個列表'(h :: ls)',那麼它意味着同樣的事情。 's'後綴只是命名列表尾部的常用約定。 – Lee 2012-04-29 11:57:52
@李:在Haskell它是'(h:ls)'。 '::'是ML,O'Caml等的缺點 – amindfv 2012-04-29 12:04:07
「ls」在Haskell中沒有內在含義。 – 2012-04-29 23:36:54