小编Abh*_*kar的帖子

Clojure中的相互递归定义

如何在Clojure中进行相互递归定义?

下面是Scala中的代码,用于查找使用递归定义的素数:

val odds: Stream[Int] = cons(3, odds map { _ + 2 })
val primes: Stream[Int] = cons(2, odds filter isPrime)
def primeDivisors(n: Int) =
    primes takeWhile { _ <= Math.ceil(Math.sqrt(n))} filter { n % _ == 0 }
def isPrime(n: Int) = primeDivisors(n) isEmpty

primes take 10
Run Code Online (Sandbox Code Playgroud)

我把它翻译成Clojure:

(def odds (iterate #(+ % 2) 3))
(def primes (cons 2 (filter is-prime odds)))
(defn prime-divisors [n]
    (filter #(zero? (mod n %)) 
        (take-while #(<= % (Math/ceil (Math/sqrt n))) 
            primes)))
(defn …
Run Code Online (Sandbox Code Playgroud)

recursion clojure definition

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

在Clojure/Java中检测Unicode文本连字

连字是Unicode字符,由多个代码点表示.例如,在Devanagari中???是一个由代码点组成的连字? + ? + ?.

在简单的文本文件编辑器中看到,如记事本,???显示为?? + ?并存储为三个Unicode字符.但是,当在Firefox中打开相同的文件时,它会显示为正确的连字.

所以我的问题是,如何从我的代码中读取文件时以编程方式检测此类连字.自从Firefox成功以来,必须有一种以编程方式完成它的方法.是否有任何包含此信息的Unicode属性,或者我是否需要有所有此类连字的映射?

text-rendering设置为SVG CSS属性时optimizeLegibility做同样的事情(将代码点组合成适当的连字).

PS:我正在使用Java.

编辑

我的代码的目的是计算Unicode文本中的字符,假设连字是一个单一字符.所以我需要一种方法将多个代码点折叠成一个连字.

java unicode text clojure ligature

6
推荐指数
1
解决办法
1677
查看次数

JS禁用的浏览器

多年前,我曾经设计过JavaScript禁用的浏览器.现在有多重要?

这真的是你需要担心的吗?我从来没有遇到过禁用JavaScript的现实生活中的用户.有人得到任何数字?

javascript standards coding-style

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

将文件上传到服务器并将路径存储在Ruby on Rails中的数据库中

我对ROR很新.我有一项任务要完成:

这是模型:

class File::DataImport < ActiveRecord::Base
  attr_accessible :created_by, :file_name, :file_source, :updated_at, :updated_by
end
Run Code Online (Sandbox Code Playgroud)

这是控制器:

class Files::DataImportsController < ApplicationController
  def index
  end

  def new
  end
end
Run Code Online (Sandbox Code Playgroud)

而我的观点是indexnew.

我想要一个字段来上传数据.数据应存储在服务器中,并将文件路径保存到指定列的数据库中file_name.该路径应默认为所有上传文件.

我被困在如何开始.请帮我找到解决方案,我将从中学习.

提前致谢.

ruby ruby-on-rails

6
推荐指数
1
解决办法
5863
查看次数

在子类中抛出异常的标准是什么

到目前为止我所知道的是,如果重写超类方法,子类应抛出相同的异常或异常的子类.

例如:

这是对的

class SuperClass {
    public int doIt(String str, Integer... data)throws ArrayIndexOutOfBoundsException{
 String signature = "(String, Integer[])";
 System.out.println(str + " " + signature);
 return 1;
 }
}

public final class SubClass extends SuperClass {
    public int doIt(String str, Integer... data) throws ArrayIndexOutOfBoundsException {
        String signature = "(String, Integer[])";
        System.out.println("Overridden: " + str + " " + signature);
        return 0;
    }

    public static void main(String... args) {
        SuperClass sb = new SubClass();
        try {
            sb.doIt("hello", 3);
        } catch (Exception e) …
Run Code Online (Sandbox Code Playgroud)

java polymorphism overriding exception

6
推荐指数
1
解决办法
8008
查看次数

在不读取完整文件的情况下估计文件的字数

我有一个程序来处理非常大的文件.现在我需要显示一个进度条来显示处理的进度.该程序在单词级别上工作,一次读取一行,将其拆分为单词并逐个处理单词.因此,当程序运行时,它知道处理的单词的数量.如果它以某种方式预先知道文件的字数,它可以很容易地计算进度.

问题是,我正在处理的文件可能非常大,因此处理文件两次不是一个好主意,一次得到总字数,然后是运行实际处理代码.

所以我试着编写一个代码,通过读取文件的一小部分来估算文件的字数.这就是我提出的(在Clojure中):

(defn estimated-word-count [file]
  (let [^java.io.File file (as-file file)
        ^java.io.Reader rdr (reader file)
        buffer (char-array 1000)
        chars-read (.read rdr buffer 0 1000)]
    (.close rdr)
    (if (= chars-read -1)
      0
      (* 0.001 (.length file) 
        (-> (String. buffer 0 chars-read) tokenize-line count)))))
Run Code Online (Sandbox Code Playgroud)

此代码从文件中读取前1000个字符,从中创建一个String,对其进行标记以获取单词,对单词进行计数,然后通过将文件的长度乘以文件的长度并将其除以1000来估计文件的单词计数.

当我在带有英文文本的文件上运行此代码时,我得到几乎正确的字数.但是,当我在一个带有印地文文本(用UTF-8编码)的文件上运行它时,它几乎返回真实字数的两倍.

我知道这个问题是因为编码.那么有什么方法可以解决它吗?

正如Frank建议的那样,我确定前10000个字符的字节数,并用它来估计文件的字数.

(defn chars-per-byte [^String s]
  (/ (count s) ^Integer (count (.getBytes s "UTF-8"))))

(defn estimate-file-word-count [file]
  (let [file (as-file file)
        rdr (reader file)
        buffer (char-array 10000)
        chars-read (.read rdr buffer 0 10000)] …
Run Code Online (Sandbox Code Playgroud)

java text-processing clojure large-files

5
推荐指数
2
解决办法
1098
查看次数

如何在没有IDE依赖的情况下构建/测试Scala?

我现在很好地学习Scala并非常享受它; 我希望在其中开始未来的项目,而不是Java.我更少享受的是(相对)糟糕的IDE支持.我发现IDEA和Eclipse都带有Scala插件(包括夜间版本)有点不可靠或难以使用 - 我想要一些我总能依赖的东西.例如,昨天我无法全新安装eclipse +插件来运行我的测试,甚至打开一个编辑器窗口!

我正在考虑在Eclipse/IDEA之间跳跃,这取决于最适合手头的任务,更重要的是减少我对构建和运行测试的IDE的依赖(ScalaTest).这对我来说非常重要,因为我在Eclipse中长大了Java; 让Eclipse SVN使用GIT最初是一件大事.鉴于我只有时间学习一个工具,它应该是Ant,Maven,buildr,sbt,.... 其他人如何工作?

ant maven-2 scala build buildr

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

Spring @Autowired in Servlet

我在我的应用程序中使用Spring框架(2.5.4)加载时间编织并且一切正常(在Spring bean中,在非Spring实体中),除非我尝试在注释为@Configurable的servlet中自动装配字段,然后我得到一个很好的NullPointerException ...


@Configurable(dependencyCheck=true)
public class CaptchaServlet extends HttpServlet{
    @Autowired
    private CaptchaServiceIface captchaService;

    @Override
    public void init(ServletConfig config) throws ServletException {
        super.init(config);
    //    ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(config.getServletContext());
    //    captchaService = (CaptchaServiceIface) ctx.getBean("captchaService");
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Captcha c = captchaService.getCatpcha();
        req.getSession().setAttribute("captchaAnswer", c.getAnswer());
        resp.setContentType("image/png");
        ImageIO.write(c.getImage(), "png", resp.getOutputStream());
    }
}
Run Code Online (Sandbox Code Playgroud)
<context:load-time-weaver/>
<context:spring-configured/>
<context:component-scan base-package="cz.flexibla2" />
Run Code Online (Sandbox Code Playgroud)

关于我做错了什么的任何建议?

谢谢.

java spring servlets autowired

5
推荐指数
2
解决办法
9790
查看次数

JPA 中的跨数据库连接

是否可以在 JPA 中进行跨数据库表连接?

users在一个数据库中有一个表,它有organizations一个单独数据库中表的外键。两个数据库都在同一台物理机器上。现在 MySQL 允许我编写跨越多个数据库的查询,但我不确定如何使用 JPA 来做到这一点。

@Entity对Java POJO的注解,也没有办法,以纪念跨DB关系不采取数据库的名称。

这种情况有解决方法吗?也许使用本机查询来加载加入的实体?

mysql database jpa cross-database jpa-2.0

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

访问在 HTTP 代理服务器后面运行的启用 JMX 的应用程序

我有一个启用 JMX 的 Java 应用程序 (Java 1.5),位于 HTTP 代理服务器后面。所以我无法直接通过 JConsole 访问它。

我想象的一个解决方案是在我的应用程序中有一个虚拟机内 JMX 客户端,它从 JMX 服务器收集统计信息和配置数据,并通过代理定期通过 HTTP 将其发布到我的外部服务器。如果需要,我的外部服务器会回复任何配置更改,并且 VM 内 JMX 客户端会将这些更改传播到 JMX 服务器,然后将这些更改应用到应用程序。

我猜想这种情况足够频繁,以至于已经有解决方案解决它。是否有任何帮助框架/库可以通过 HTTP 实现此类访问?

java jmx remote-access proxy-server

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