代表Haskell的尾巴

时间:2013-01-04 11:22:46

标签: haskell

  

可能重复:
  Where does the name “xs” for pattern matching come from?

我正在学习Haskell。这是一个计算总和

的函数
sum' :: (Num a) => [a] -> a  
sum' [] = 0  
sum' (x:xs) = x + sum' xs  

我无法弄清xs的意思。 x - 是头部,xs - 是尾部。但它写的是xs而不仅仅是x或s?

1 个答案:

答案 0 :(得分:6)

xxs只是变量名称;例如,您可以使用fredwilma代替。但是调用列表x的头部和尾部xs(发音为exes)是很常见的,因为它会提示x是单个元素,而{{{ 1}}可能包含多个元素。

您给出的示例使用模式匹配,这是一个漂亮的功能。这条线

xs

基本上是说“将输入参数取为sum”,并在第一个元素之后将其拆分。调用第一个元素 sum' (x:xs) = x + sum' xs 和列表的其余部分x“。它基本上等同于:

xs