小编use*_*669的帖子

相当于Java 7中的map(来自haskell)

在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并发现了像forAllDotransform这样的东西,但它们不允许重新调整一个完全不同类型的集合.谷歌搜索其他库失败的原因相同.

要明确:我知道如何自己解决问题,但我强烈认为必须已经存在一个更好地执行此任务的好库.

额外的问题:在Java 7中是否有一些与Haskell仿函数相当的东西(即从集合转移到迭代)?进一步的解释:是否有一个map函数Iterable<A>代替Collection<A>并返回一个Iterable<B>而不是Collection<B>(由拟合函数提供f)?

java haskell

9
推荐指数
1
解决办法
609
查看次数

了解 GHC 的 +RTS -t -RTS 选项的输出

我正在对使用 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 手册,输出显示:

\n\n
    \n
  • 程序在整个运行过程中分配的字节总数。
  • \n
  • 执行的垃圾收集总数。
  • \n
  • 平均和最大“驻留”,即实时数据量(以字节为单位)。运行时只能确定一次Major GC期间的实时数据量,这就是为什么样本数量对应于Major GC的数量(并且通常相对较小)。
  • \n
  • RTS 从操作系统分配的峰值内存。
  • \n
  • 初始化运行时系统 (INIT)、运行程序本身(MUT、变异器)和垃圾收集 (GC) 时的 CPU 时间量和已用的挂钟时间。
  • \n
\n\n

应用于我的示例,这意味着我的程序会混洗 82321 MiB(字节除以 1024^2),执行 160722 次垃圾收集,具有 51MiB/72MiB 平均/最大内存驻留,在 RAM 中分配最多 191M 内存等等。 ..

\n\n

现在我想知道,\xc2\xbb 的平均和最大“驻留”(即以字节为单位的实时数据量)\xc2\xab 与 \xc2\xbbRTS 从 OS\xc2\ …

haskell ghc

5
推荐指数
1
解决办法
1225
查看次数

如何在swi-prolog中导入运算符?

我有以下文件:

:- 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)

module prolog swi-prolog

4
推荐指数
1
解决办法
151
查看次数

标签 统计

haskell ×2

ghc ×1

java ×1

module ×1

prolog ×1

swi-prolog ×1