使用该-Wall选项编译我的Haskell应用程序时,GHC会抱怨孤立的实例,例如:
Publisher.hs:45:9:
Warning: orphan instance: instance ToSElem Result
Run Code Online (Sandbox Code Playgroud)
类型类ToSElem不是我的,它由HStringTemplate定义.
现在我知道如何解决这个问题(将实例声明移动到声明Result的模块中),我知道为什么GHC更愿意避免孤立的实例,但我仍然相信我的方式更好.我不在乎编译器是否带来不便 - 而不是我.
我想ToSElem在Publisher模块中声明我的实例的原因是因为它是依赖于HStringTemplate的Publisher模块,而不是其他模块.我试图保持关注点的分离,并避免让每个模块依赖于HStringTemplate.
我认为,与Java的接口相比,Haskell类型类的优点之一是它们是开放的而不是封闭的,因此实例不必在与数据类型相同的位置声明.GHC的建议似乎是忽略了这一点.
所以,我正在寻找的是要么认可我的想法是正确的,要么我有理由忽视/压制这个警告,或者更有说服力的反对我做事的做法.
我已经非常成功地完成了相当多的遗传算法工作,因此忽略了遗传编程.据我所知,大多数程序仍由程序员编写,我很想知道什么是遗传编程?
我想到的一些可能的解释是:
有任何想法吗?
我正在使用Java 1.4和Log4J.
我的一些代码涉及序列化和反序列化值对象(POJO).
我的每个POJO都声明了一个记录器
private final Logger log = Logger.getLogger(getClass());
Run Code Online (Sandbox Code Playgroud)
序列化程序抱怨org.apache.log4j.Logger不是Serializable.
我应该用吗?
private final transient Logger log = Logger.getLogger(getClass());
Run Code Online (Sandbox Code Playgroud)
代替?
在IntelliJ IDEA中编辑XML文件时,如果文档引用模式,IDEA将获取模式并使用该信息进行自动完成.它知道哪些标签在哪些上下文中有效,所以当你按CTRL空格时,它只建议那些标签.它还会根据架构突出显示任何无效的标记.
有没有人知道提供类似功能的Vim扩展?
当Maven构建一个JAR文件时,它将模块的POM文件放在里面(似乎在目录<groupid>/<artifactid>中).
当我从Ant构建一个JAR文件以通过Maven Ant任务进行部署时,这个POM文件(JAR内部的文件)的存在是否重要?它似乎不是,但我只是想确保它没有在任何地方使用,并确认它应该在JAR文件中的确切位置.
我有一个新的Android应用程序,我几天前在市场上.我在发布之前对我的机器人机器人进行了相当多的测试,并试图进行彻底的测试.好吧,我得到了一些负面的评论,说明它是如何在某人的EVO 2.2或X10上运行的(甚至不知道最初是什么).好吧,它在我的手机上运行完美.
关于我应该如何修复或支持在100种不同手机上运行的应用程序的任何建议?
其他开发者如何接近这个?(实际上没有购买每部手机).谢谢.
Java虚拟机是否曾在内存中移动对象,如果是,它如何处理更新对移动对象的引用?
我问,因为我正在探索以分布式方式存储对象的想法(即跨越多个服务器),但出于效率原因,我需要能够在服务器之间移动对象.对象需要能够包含指向彼此的指针,甚至包含远程服务器上的对象.我正在尝试考虑更新对移动对象的引用的最佳方法.
到目前为止我的两个想法是:
我对这些方法的反馈以及对替代方法的任何建议感兴趣.
有没有人知道任何旨在将Android的Java VM移植到iPhone上的现有项目?据我所知,这不会太遥不可及,肯定会带来一些令人兴奋的发展.
编辑:我应该指出,我知道使用官方iPhone SDK不会发生这种情况.然而,一个越狱平台将删除苹果公司施加的任何障碍.我想大多数人都有兴趣将Android集成到iPhone中,这也是通常拥有越狱iphone的人群.
我希望生成一个随机数并将其发布到数据库中的表中,以用于特定的user_id.问题是,相同的数字不能使用两次.有一百万种方法可以做到这一点,但我希望非常热衷于算法的人能够在一个优雅的解决方案中巧妙地解决问题,因为满足以下条件:
1)对数据库的查询量最少.2)在内存中进行数据结构爬行的次数最少.
基本上这个想法是做以下事情
1)创建0到9999999之间的随机数
2)检查数据库以查看数字是否存在
或者
2)查询数据库中的所有数字
3)查看返回的结果是否与数据库中的数据匹配
4)如果匹配,重复步骤1,如果没有,问题就解决了.
谢谢.