在 Haskell中有一个叫做map的函数,它使用A类的列表和一个函数f,将类型A的值映射到类型B的值.它返回一个类型B的列表,使得结果列表的每个元素来自调用f到输入列表中的值.

例如,给定

>一个列表m = [‘a’,’b’,’c’],
>和函数f = {‘a’ – > 1,’b’ – > 2,’c’ – > 3},
然后映射(m,f)= [1,2,3].

是否有可用于Java 7的图书馆,提供类似地图功能的图书?我已经看过apache CollectionUtils,发现了forAllDo和transform,但是它们不允许重新调整完全不同类型的集合.出于同样的原因,其他图书馆的Google搜索失败.

要明确:我知道如何自己解决这个问题,但我强烈地认为,必须已经有一个很好的图书馆来更好地执行这个任务.

奖金问题:有没有一些相当于Haskell函子(即从集合转到可迭代)可用于Java 7?进一步的解释:是否有一个地图函数,它需要一个可迭代的< A>而不是集合< A>并返回可替代的< B>而不是Collection< B> (由拟合函数f提供)?

解决方法

您要求Java 7(使用Java 8更容易):

您可以使用Guava,具体FluentIterable

final List<String> strings = Arrays.asList("a","b","c");
    final List<Integer> integers = FluentIterable
            .from(strings)
            .transform(new Function<String,Integer>() {
                @Nullable
                @Override
                public Integer apply(@Nullable String input) {
                    return input.equals("a") ? 1 : input.equals("b") ? 2 : input.equals("c") ? 3 : -1;
                }
            })
            .toList();

奖金问题:集合是一个迭代:-)

相当于Java 7中的map(from haskell)的更多相关文章

  1. windows – 在Haskell程序中使用所有可用的RAM?

    我有8GB的RAM,但Haskell程序似乎只能使用1.3GB.我正在使用这个简单的程序来确定GHC程序可以分配多少内存:这是我发现的:>运行./mem.exe40000000RTS-s成功并报告正在使用的总内存为1113MB>运行./mem.exe42000000RTS-s因内存不足错误而失败>运行./mem.exe42000000RTS-s-M4G错误输出-M4G:大小超出允许范围>运行./m

  2. windows – Haskell,GHC,win32,cairo

    我怀疑你遇到了很多我刚刚做过的问题.我最近在Haskell和ZeroMQ在Windows上做了一些事情.GHC在Windows上运行,ZeroMQ有一个MingW32端口,并且有一个标准的ZeroMQCabal包,所以我认为这将工作.然而:>GHC仅部分支持Windows上的动态链接.见here.>ZeroMQCabal软件包取决于libzmq的静态版本.>GHC在Windows上使用MingW32约定其库和dll.>ZeroMQ只在他们的MingW32端口中构建一个动态的.dll,而不是.a静态存档.我

  3. 如何从Windows XP机器清除Haskell安装?

    我尝试卸载Haskell平台,但包数据库保持不变.如何从系统中彻底清除Haskell?

  4. Windows – Haskell – GHC中的问题编译

    我对Haskell很新,而且我最近安装了GHC平台.我决定通过编译一个简单的HelloWorld程序来测试它:main=putStrLn“Hello,world”现在,当我进入命令行,找到正确的目录,并输入ghchello.hs,它回来时显示以下消息:“[1of1]编译Main“.我知道一旦编译完成,它应该遵循“链接hello.exe…”,但是从来没有,没有.exe生成.基本上是否有什么可以理解的原因呢?代码是否有问题,有什么我不知道的,还是应该尝试重新安装Haskell平台?谢谢.我有ghc通过从文件的

  5. 在Windows上安装Haskell,cabal配置

    我该怎么办,粘贴文件开头的第3步,文件末尾的行,覆盖现有的行或完全跳过第3步?您不需要覆盖现有行.您可以拥有多个额外的prog-path条目,它们都可以使用.

  6. 正则表达式 – Haskell:正则表达式和Data.Text

    当处理大量的文本数据时,建议使用Data.Text而不是使用haskells本机字符串.检查,完成.但正则表达式呢?是否有可用的正则表达式库,专门用于Data.Text?

  7. 模式匹配Haskell中的正则表达式模式

    在Scala中,我有一个正则表达式模式匹配,如下所示:结果是:如何在Haskell中完成类似的结果?换句话说,我可以匹配包含组的正则表达式并将组分配给标识符吗?

  8. haskell – 非正则递归类型的变形(折叠)的类型是什么?

    许多变形似乎很简单,主要是用一个定制功能代替每个数据构造函数,例如。然而,对我来说不清楚的是,如果使用相同的类型构造函数,但是使用不同的类型参数会发生什么。我会学习在Coq中成为:具有感应原理:删除“依赖”部分:在Haskell符号:除了附加的List3(a,a)参数外,这是一种折叠。唉,Coq不接受这种类型因为内部的List4的出现不是在严格正确的位置。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  9. 替换/替换与Haskell正则表达库

    有没有一个高级API用于在Haskell中进行搜索和替换与正则表达式?特别是,我正在看Text.Regex.TDFA或Text.Regex.Posix包。我真的喜欢类似的东西:所以,例如,用“猫”代替“狗”,你可以写或者与monad进行更多高级的事情,比如计数事件等。Haskell的这个文档是相当缺乏的。一些低级API注释是here。Text.Regex包中的subRegex怎么样?

  10. 正则表达式 – PCRE在Haskell – 什么,在哪里,如何?

    我一直在寻找有关Haskell正则表达式的一些文档或教程.没有关于HaskellWikipage的有用信息.它只是给出了一个隐秘的消息:有一个简短的blogpost我发现相当有帮助,但它只处理Posix正则表达式,而不是PCRE.我一直在使用Posix正则表达式几个星期,我得出结论,对于我的任务,我需要PCRE.我的问题是,我不知道从Haskell开始使用PCRE.我已经下载了正则表达式的pcre-builtin与cabal,但我需要一个简单的匹配程序的例子,以帮助我走.>是否可以实现多行匹配?>我可以使

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部