小编Ral*_*lph的帖子

如何过滤列表[选项]中的无?

如果我List[Option[A]]在Scala中有一个过滤掉None值的惯用方法是什么?

一种方法是使用以下内容:

val someList: List[Option[String]] = List(Some("Hello"), None, Some("Goodbye"))
someList.filter(_ != None)
Run Code Online (Sandbox Code Playgroud)

有更"惯用"的方式吗?这看起来很简单.

scala option

99
推荐指数
3
解决办法
4万
查看次数

在多个文件上拆分Clojure命名空间

在进行提前编译时,是否可以在多个源文件上拆分Clojure命名空间:gen-class?怎么做(:main true)(defn- ...)发挥?

namespaces compilation clojure

89
推荐指数
1
解决办法
9765
查看次数

Clojure与其他Lisps

我的问题的目的不是要开始一场火焰战争,而是要确定在什么情况下每种语言都是"工作的最佳工具".

我已经阅读了几本关于Clojure的书(Clojure 编程,实用Clojure,Clojure 的喜悦,以及Clojure in Action的Manning Early Access版本),我认为这是一本很棒的语言.我目前正在阅读Let Over Lambda,它主要涉及Common Lisp宏,而且它也是一种非常有趣的语言.

不是 Lisp专家(更多的是新手),但这个语言系列对我来说很有吸引力,一般来说,功能编程也是如此.

Clojure的优点(以及"其他"的缺点):

  • 在JVM上运行.

    • JVM是一个非常稳定,高性能的语言环境,很好地满足了Sun的"一次编写,几乎在任何地方运行"的梦想.我可以在我的Macbook Pro上编写代码,将其编译成可执行的JAR文件,然后在Linux和Microsoft Windows上运行它,几乎不需要额外的测试.

    • (Hotspot和其他)JVM支持高质量的垃圾收集和非常高效的即时编译和优化.就在几年前,我写了一些必须在C中快速运行的东西,现在我毫不犹豫地在Java中这样做.

    • 标准,简单,多线程模型.Common Lisp是否有标准的多线程包?

    • 打破了所有这些括号的单调[],{}#{},虽然Common Lisp的专家可能会告诉我,有读者宏,你可以添加那些CL.

Clojure的缺点:

  • 在JVM上运行.
    • 没有尾递归或延续.Common Lisp是否支持延续?我相信,计划需要支持两者.

其他人的优点(特别是Common Lisp)(以及Clojure的缺点):

  • 用户可定义的阅读器宏.

  • 其他优点?

思考?其他差异?

lisp comparison scheme clojure common-lisp

87
推荐指数
4
解决办法
4万
查看次数

TypeScript React应用程序中的PropTypes

React.PropTypes在TypeScript React应用程序中使用是否有意义还是仅仅是"腰带和吊带"的情况?

由于组件类是使用Props类型参数声明的:

interface Props {
    // ...
}
export class MyComponent extends React.Component<Props, any> { ... }
Run Code Online (Sandbox Code Playgroud)

添加是否有任何实际好处

static propTypes {
    myProp: React.PropTypes.string
}
Run Code Online (Sandbox Code Playgroud)

到班级定义?

typescript reactjs react-proptypes

71
推荐指数
5
解决办法
3万
查看次数

jaxb unmarshal时间戳

我无法让JAXB在Resteasy JAX-RS服务器应用程序中解组时间戳.

我的班级看起来像这样:

@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement(name = "foo")
public final class Foo {
    // Other fields omitted

    @XmlElement(name = "timestamp", required = true)
    protected Date timestamp;

    public Foo() {}

    public Date getTimestamp() {
        return timestamp;
    }

    public String getTimestampAsString() {
        return (timestamp != null) ? new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(timestamp) : null;
    }

    public void setTimestamp(final Date timestamp) {
        this.timestamp = timestamp;
    }

    public void setTimestamp(final String timestampAsString) {
        try {
            this.timestamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(timestampAsString);
        } catch (ParseException ex) {
            this.timestamp = …
Run Code Online (Sandbox Code Playgroud)

java datetime jaxb

60
推荐指数
2
解决办法
6万
查看次数

在Maven中生成Version.java文件

我有一个使用Ant脚本构建的Java项目.我正在尝试将项目转换为Maven.

其中一个任务生成一个名为Version.java的Java源文件,其中包含编译时间戳的静态String表示形式,如下所示:

package com.foo.bar;
public final class Version {
 public static String VERSION="100301.1046";
}
Run Code Online (Sandbox Code Playgroud)

Ant任务非常简单:

<target name="version" depends="init" description="Create Version.java">
    <echo file="src/${package.dir}/Version.java" message="package ${package.name};${line.separator}" />
    <echo file="src/${package.dir}/Version.java" append="true" message="public final class Version {${line.separator}" />
    <echo file="src/${package.dir}/Version.java"
          append="true"
          message=" public static String VERSION=&quot;${buildtime}&quot;;${line.separator}" />
    <echo file="src/${package.dir}/Version.java" append="true" message="}${line.separator}" />
    <echo message="BUILD ${buildtime}" />
</target>
Run Code Online (Sandbox Code Playgroud)

是否可以使用生成源或其他简单方法在Maven中执行类似的操作?

java maven-2 code-generation

54
推荐指数
6
解决办法
5万
查看次数

RESTful方式发送命令

如何将"命令"发送到RESTful服务器?

使用案例:我的服务器缓存某些信息,以便每次请求信息时都不必读取数据库.我需要一种方法从我的客户端应用程序发送命令,告诉服务器刷新缓存.你会在像".../flush_cache"这样的URL上使用POST或PUT吗?

"命令"实际上不是需要"Representational State Transfer"的数据,除非被传输的状态是命令的结果 - "开关关闭","缓存被刷新"等.作为一般规则,如何做REST将命令发送到服务器?

rest web-applications

51
推荐指数
3
解决办法
2万
查看次数

Java 6注释处理 - 从注释中获取类

我有一个名为@Pojo的自定义注释,我用它来生成自动维基文档:

package com.example.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.SOURCE)
@Target(ElementType.METHOD)
public @interface Pojo {
    Class<?> value();
}
Run Code Online (Sandbox Code Playgroud)

我这样使用它:

@Pojo(com.example.restserver.model.appointment.Appointment.class)
Run Code Online (Sandbox Code Playgroud)

注释资源方法,以便注释处理器可以自动生成描述其期望的资源和类型的Wiki页面.

我需要value在注释处理器中读取字段的值,但我收到运行时错误.

在我的处理器的源代码中,我有以下几行:

final Pojo pojo = element.getAnnotation(Pojo.class);
// ...
final Class<?> pojoJavaClass = pojo.value();
Run Code Online (Sandbox Code Playgroud)

但实际的类不适用于处理器.我想我需要一个javax.lang.model.type.TypeMirror代替真正的班级的代理人.我不确定如何获得一个.

我得到的错误是:

javax.lang.model.type.MirroredTypeException: Attempt to access Class object for TypeMirror com.example.restserver.model.appointment.Appointment
Run Code Online (Sandbox Code Playgroud)

Appointment是我的一个@Pojo注释中提到的类.

不幸的是,关于Java注释处理的文档和/或教程似乎很少.尝试使用谷歌搜索.

java types annotation-processing

45
推荐指数
2
解决办法
1万
查看次数

像Scala流一样处理SQL ResultSet

当我查询数据库并接收(仅向前,只读)ResultSet时,ResultSet就像一个数据库行列表.

我试图找到一些方法来像Scala一样对待这个ResultSet Stream.这将允许这样的操作的filter,map等等,而不是消耗大量的内存.

我实现了一个尾递归方法来提取单个项目,但是这要求所有项目同时在内存中,如果ResultSet非常大,则会出现问题:

// Iterate through the result set and gather all of the String values into a list
// then return that list
@tailrec
def loop(resultSet: ResultSet,
         accumulator: List[String] = List()): List[String] = {
  if (!resultSet.next) accumulator.reverse
  else {
    val value = resultSet.getString(1)
    loop(resultSet, value +: accumulator)
  }
}
Run Code Online (Sandbox Code Playgroud)

scala resultset stream

43
推荐指数
3
解决办法
2万
查看次数

功能隐私和单元测试Haskell

你如何处理Haskell中的函数可见性和单元测试?

如果导出模块中的每个函数以便单元测试可以访问它们,则可能会冒其他人调用不应该在公共API中的函数.

我想到使用{-# LANGUAGE CPP #-}然后用以下方法包围出口#ifdef:

{-# LANGUAGE CPP #-}

module SomeModule
#ifndef TESTING
( export1
, export2
)
#endif
where
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

haskell unit-testing private-methods

43
推荐指数
2
解决办法
4251
查看次数