[英]how to compress a List in f#?
嗨,我是 f# 的新手,我做了这个练习,我无法弄清楚:“实现 Function:” let compress (l: List<'a>): List<'a> =...
l 中的相同元素。 例如将 [a;a;a;a;b;b;c] 压缩为 [a;b;c]
我不允许使用 f# 的内置函数,需要通过模式匹配来执行此操作。
我当前的代码(不多):
let rec compress (l: List<'a>) : List<'a> =
match l with
| [] -> l
谢谢您的帮助!
对于任何递归 function 您需要考虑:1. 终端情况和 2. 一般情况。 在您的场景中:
构建此类函数时要考虑的另一个重要方面是假设它适用于先前的值。 例如,在阶乘的情况下,我们假设 function 已经适用于先前的场景,例如 n-1 的阶乘。
let fact n =
match n with
| 0 | 1 -> 1
| _ -> n * fact (n-1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.