string - 如何使用 foldl 找出一个字母在字符串中重复的次数?

标签 string testing erlang anonymous-function fold

我是 Erlang 的新手,正在测试不同的函数以掌握它们。我希望此函数能够返回一个整数,该整数表示使用 foldl 函数在字符串中重复字母变量的次数,但我有点坚持决定“有趣”函数。有帮助吗?

我希望函数返回的示例:

`test:count("Hello this is a test", $i)`

应该返回 2

test:count("Hello this is a test", $t)

应该返回 3

-spec count(String, Char) -> integer() when
  String::string(),
  Char::char().

count(String, Char) ->

F = ???,

lists:foldl(F, 0, String).

最佳答案

按照 Hynek -Pichi- Vychodil 的回答,你也可以这样写折叠:

count(String, Char) ->
  F = fun(C, Count) when C=:=Char-> Count + 1;
         (_, Count)              -> Count
      end,
  lists:foldl(F, 0, String).

关于string - 如何使用 foldl 找出一个字母在字符串中重复的次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42457956/

相关文章:

java - 如何打印在 Java 主函数的方法中返回的 int 数组

javascript - 开 Jest `toMatchSnapshot` 原因 "Maximum call stack size exceeded"

erlang - 从命令行通过basho rebar运行Erlang应用程序时如何设置Erlang节点名称

select - Erlang Mnesia 是否在 ordered_set 上选择以 Erlang Term 顺序给出列表?

erlang - 获取有效 system_info 原子的完整列表

java - 如何将字符串类型的值的编码与java中的特定编码进行比较?

javascript - Node.js:密码问题

c++ - 用于集成测试的模拟库

sql - 值得自己测试数据访问查询吗?

c - 获取指向字符串常量的指针