【发布时间】:2021-05-15 11:12:29
【问题描述】:
编写一个名为 sort_of_sum 的 Erlang 函数,它接受一个参数 List。该函数的行为应如下所示:
(使用模式匹配来解决这个问题。)
- 如果 List 是一个没有元素的列表,则打印“There is nothing there!”
- 如果 List 是一个包含一个元素的列表,则打印“The sum is sum”。其中 sum 是元素。
- 如果 List 是一个包含两个元素的列表,则打印“The sum is sum”。其中 sum 是两个元素的总和。
- 如果 List 是一个包含三个元素的列表,则打印“The sum is sum”。其中 sum 是三个元素的总和。
- 如果 List 是一个包含三个以上元素的列表,则打印“That's too many to add!”提示:您可能需要使用 tail 构造 |以某种方式匹配这个。
- 如果 List 是其他内容,请打印“I can't add that!”
【问题讨论】:
-
你试过什么?它是如何失败的?
-
-模块(主)。 -出口([sort_of_sum/1])。 sort_of_sum(List=[]) -> io:format('那里什么都没有!~s~n',[List]); sort_of_sum([H|_]) -> sum = H , io:format('The sum is ~s~n',[sum]).
-
不要将代码粘贴到评论中。请更新您的问题。
-
我也是 Erlang 的新手,所以我尝试分段进行
-
模式匹配就是“分块做”。