使用并行计算统计文本中字母的频率。
并行是指把那些同样可以顺序完成的事情并行地做。一个常见的例子就是统计字母的频率。利用并行计算来算出文本数组中每个字母的总频率。
统计字母,忽略大小写和非字母字符,并返回一个字典,键为小写字母,值为对应的出现次数。 把字母当作 Unicode 标量值来处理;不需要做 Unicode 规范化。
使用 roc-parallel 平台 提供的pf.Parallel.map!(items, { workers, task }),通过一个纯task函数,把给定的items分发到多个线程(由workers指定)上并行处理。
所有items处理完成后,结果会按输入顺序返回。
你只需要编辑ParallelLetterFrequency.roc。
与大多数其他练习不同,本练习使用的是有副作用的函数。
用roc --opt=speed parallel-letter-frequency-test.roc来运行测试,而不是roc test。
Roc 代码返回的任何错误都会由平台以与平时不同的格式报告出来。
你也可以看看 bank-account 练习,它探讨了并发的另一个侧面:如何安全地把更新应用到共享状态。