java 函数中的函数_Java中的函数

news/2024/7/5 19:07:35

我正在尝试在

Java中定义类似于Haskell的仿函数的类.因此,仿函数定义为:

/**

* Programming languages allow only (just simply enough) endofunctor, that are functors from and to the same category.

* In this case, the category is the one of the datatypes (in here Type, in order to make it more clear)

*/

public interface EndoFunctor extends Type {

/**

* The basic implementation for any element fx

* @param map Transformation function for the type parameter

* @param fx Element of the current class

* @param Target type

* @return transformed element through map

*/

EndoFunctor fmap(Function map, EndoFunctor fx);

}

如果我想实现一个XtbyC.gif仿函数,我必须写一些类似的东西

public class Id implements EndoFunctor {

protected X witness;

Id(X witness) { this.witness = witness; }

@Override

public Id fmap(Function map, Id fx) {

return new Id<>(map.apply(fx.witness));

}

}

该代码的问题在于Id< X>与EndoFunctor< X>类型不匹配.我如何在EndoFunctor接口中确定fmap,以便如果任何类型K< T>实现EndoFunctor< T>并且给出映射函数T-> U,然后K< U>.作为值返回,没有任何类型转换(也就是说,因为我知道我的对象是Id< T>,然后fmap的结果“必须是”Id< U>“,因此我向下转换类型的结果EndoFunctor< U>到这种类型)?


http://www.niftyadmin.cn/n/2422845.html

相关文章

集合(四): Map

为什么80%的码农都做不了架构师&#xff1f;>>> 更多实现类的源码分析请点击链接地址。。。。。。。 一&#xff1a; java.util.Map<k,v> public interface Map<K,V> { //....} Map用于保存具有映射关系的数据&#xff0c;因此Map集合&#xff08;…

mysql 留言及回复_mysql - 用PHP写留言板,有回复功能,要写入数据库。

为情所困2017-05-24 11:36:301楼第一&#xff0c;最好不要和反饋信息表設計在同一張表裡。第二&#xff0c;你的反饋表最好加多一個字段status,表示該條信息是否已回复。反饋表設計id[int(11)]主鍵suggest_id[int(11)]反饋表idaid[int(11)]反饋人員idcontent[text]反饋信息isus…

mysql靶机_[Vulnhub]靶机渗透-Raven:2

0x01 Scan Host更加详细地扫描:0x02 Web Service还是有个wp&#xff0c;老规矩用wpscan看一下&#xff0c;同时扫描目录。flag1dirb扫描出错&#xff0c;所以这里用gobuster:挨个看了下发现了flag1:刚好wpscan的结果也出来了&#xff0c;wordpress的版本是4.8.7&#xff0c;主题…

第一节课作业 150206119

c语言首先老师提供一个C语言的飞机游戏让大家感受一下&#xff0c;首先安装c-free&#xff0c;然后是将代码进行运行&#xff0c;游戏以A.S.D.W键位来控制游戏中飞机的上下左右&#xff0c;击中敌机可获得积分&#xff0c;被敌机撞中死亡一次&#xff0c;每次游戏有3次生还机会…

Android 主题动态切换框架:Prism

Prism&#xff08;棱镜&#xff09; 是一个全新的 Android 动态主题切换框架&#xff0c;虽然是头一次发布&#xff0c;但它所具备的基础功能已经足够强大了&#xff01;本文介绍了 Prism 的各种用法&#xff0c;希望对你会有所帮助&#xff0c;你也可以对它进行扩展&#xff0…

openmp 互斥锁 mysql_并发读写OpenMp中的共享变量

我基本上有三个关于OpenMp的问题。并发读写OpenMp中的共享变量Q1。 OpenMp是否提供互斥共享变量&#xff1f;考虑下面的三个嵌套循环的简单矩阵乘法代码&#xff0c;使用C中的OpenMp并行化。这里A&#xff0c;B和C是动态空间分配双**类型的变量。线程数被适当分配一个值。#prag…

java idgenerator_Java IdGenerator.newId方法代码示例

import com.hazelcast.core.IdGenerator; //导入方法依赖的package包/类/*** {inheritDoc}*/Overridepublic void start(ClusterManager manager) throws AndesException{this.manager manager;/*** register topic listeners for cluster events. This has to be done* after…

Gartner:2016年十大信息安全技术(含解读)

在刚刚结束的2016年Gartner安全与风险管理峰会上&#xff0c;发布了2016年十大信息安全技术&#xff08;http://www.gartner.com/newsroom/id/3347717&#xff09;。这里提及的10大技术基本上都在以往的报告中详细阐述过。这10大技术分别是&#xff1a;1&#xff09;云访问安全…