累加

累加

簡單

說明

實作accumulate操作:給定一個集合,以及一個要對集合中每個元素執行的操作,它會回傳一個新的集合,其中包含將該操作套用到輸入集合中每個元素的結果。

給定這組數字:

  • 1, 2, 3, 4, 5

以及這個操作:

  • 將數字平方(x => x * x)

你的程式碼應該要能產生這組平方數:

  • 1, 4, 9, 16, 25

請查看測試套件,了解預期的函式簽名。

限制

別去碰標準函式庫提供的那個 collect/map/fmap 之類的功能! 請改用其他基本工具,自己解決這一題。

提示

在這個練習中,下列 F# 特色能派上用場:

  • 尾端遞迴 使用尾端遞迴,可以在輸入量大時避免堆疊溢位。雖然沒有測試案例會明確檢查這點,但使用尾端遞迴能讓解法效能更好。想進一步認識尾端遞迴,也可以參考這篇部落格文章。
  • 型別推斷 F# 編譯器能自動推斷型別,也就是說,你通常完全不必自己加上任何型別。想了解它的運作方式和優點,請看這個頁面。
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
F# Exercism

準備好開始 累加 了嗎?

註冊 Exercism,透過 18 個概念148 個練習 和真人引導來學習並精通 F#,全部免費。