在Haskell中有一个名为的函数map,它接受List of Type A和一个函数f,将类型A的值映射到type 的值B.它返回一个类型列表B,这样结果列表的每个元素都来自f对输入列表中值的调用.
例如,给定
m = ['a', 'b', 'c'],f = {'a' -> 1, 'b' -> 2, 'c' -> 3},map(m, f) = [1, 2, 3].是否有一个可以与Java 7一起使用的库提供类似map功能的库?我已经查看了apache CollectionUtils并发现了像forAllDo和transform这样的东西,但它们不允许重新调整一个完全不同类型的集合.谷歌搜索其他库失败的原因相同.
要明确:我知道如何自己解决问题,但我强烈认为必须已经存在一个更好地执行此任务的好库.
额外的问题:在Java 7中是否有一些与Haskell仿函数相当的东西(即从集合转移到迭代)?进一步的解释:是否有一个map函数Iterable<A>代替Collection<A>并返回一个Iterable<B>而不是Collection<B>(由拟合函数提供f)?
我正在对使用 GHC 编译的 haskell 程序的内存消耗进行基准测试。为此,我使用以下命令行参数运行该程序:+RTS -t -RTS。下面是一个示例输出:\n <<ghc: 86319295256 bytes, 160722 GCs, 53963869/75978648 avg/max bytes residency (386 samples), 191M in use, 0.00 INIT (0.00 elapsed), 152.69 MUT (152.62 elapsed), 58.85 GC (58.82 elapsed) :ghc>>。\n根据 ghc 手册,输出显示:
应用于我的示例,这意味着我的程序会混洗 82321 MiB(字节除以 1024^2),执行 160722 次垃圾收集,具有 51MiB/72MiB 平均/最大内存驻留,在 RAM 中分配最多 191M 内存等等。 ..
\n\n现在我想知道,\xc2\xbb 的平均和最大“驻留”(即以字节为单位的实时数据量)\xc2\xab 与 \xc2\xbbRTS 从 OS\xc2\ …
我有以下文件:
:- use_module(library(clpfd)).
isPowTwo(N) :- N #> 0, N #= 2^_.
Run Code Online (Sandbox Code Playgroud)
一切正常:
?- [importTest].
% library(pairs) compiled into pairs 0.00 sec, 22 clauses
% library(lists) compiled into lists 0.01 sec, 122 clauses
% library(occurs) compiled into occurs 0.00 sec, 14 clauses
% library(apply_macros) compiled into apply_macros 0.01 sec, 168 clauses
% library(assoc) compiled into assoc 0.01 sec, 103 clauses
% library(clpfd) compiled into clpfd 0.15 sec, 2,808 clauses
% importTest compiled 0.16 sec, 2,813 clauses
true.
Run Code Online (Sandbox Code Playgroud)
现在,我只想导入两个使用的运算符:
:- use_module(library(clpfd), [(#>)/2, …Run Code Online (Sandbox Code Playgroud)