You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不使用Elixir内置函数统计列表中指定值的出现次数?

手动实现统计列表元素出现次数的Elixir函数

你可以通过递归遍历列表的方式实现这个功能,完全不依赖内置的Enum模块:

defmodule ModuleName do
  # 空列表直接返回0,作为递归终止条件
  def function_name([], _target), do: 0
  
  def function_name([head | tail], target) do
    # 匹配当前头部元素是否等于目标值,累加计数
    if head == target do
      1 + function_name(tail, target)
    else
      function_name(tail, target)
    end
  end
end

# 测试示例
ModuleName.function_name([10,20,20,30], 20)
# ⇒ 2

实现思路

  • 用模式匹配处理空列表的边界情况:当列表为空时,直接返回0,这是递归的终止条件。
  • 对于非空列表,拆分出头部元素head和剩余的尾部列表tail:
    • 如果head等于目标值,就将计数加1,再递归处理剩余的tail;
    • 如果不相等,直接递归处理tail,计数保持不变。
  • 递归过程会逐步遍历完整个列表,最终累加得到目标元素的出现次数。

内容的提问来源于stack exchange,提问作者sd gopal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 07:31:17