[英]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.