小编So8*_*res的帖子

让内心深处

我正在使用clojure,虽然之前我已经涉足lisps,但我很难找到一种干净的方法来在cond语句中嵌入let语句.例如,请考虑以下功能:

(defn operate-on-list [xs]
  (let [[unpack vector] (first xs)]
    (cond
      [(empty? xs) 'empty
       unpack vector
       :else (operate-on-list (rest xs))])))
Run Code Online (Sandbox Code Playgroud)

它是列表上非常标准的递归操作,但它需要在列表中的第一个元素上进行一些工作才能使用内容.当然,问题是列表可能是空的.

在这个例子中,改变unpackto ((first xs) 0)and vectorto 并不难((first xs) 1),但是如果需要做更多的工作(第一个xs),这很快就会变得很难看.

有没有办法在cond中有效地使用let语句?

谢谢.

-Nate

lisp clojure

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

我需要帮助减少 makefile 中的依赖项

我为生成一个简单的网页创建了一个 makefile。makefile 背后的想法是这样的:

  • 我们正在编译一个网页,index.html
  • index.html 需要main.sty必须编译的手写笔 css
  • 页面中使用了许多示例
    • 例如,代码one位于lib/examples/one
    • 每个示例包含三个部分
      • 标记(.jade模板文件)
      • 一些代码(一个.coffee脚本文件)
      • 描述(.md降价文件)
  • 构建脚本必须将每个示例呈现为单个 html 文件
    • Jade、Pygments、Markdown 生成三个html文件
    • 一个example.jade模板用于这些组合成一个示例文件
      • example.jade必须复制到正确的构建示例目录,因为模板语言只能做相对导入。因此,为了导入example/one/code.html,我们必须将模板复制到example/one并包含它code.html
    • 完成后,每个示例x都将编译为tbuild/examples/x.html
  • lib/index.jade模板被移动到build(以便它可以包括示例文件)
  • 然后使用 Jade 将index.jade模板编译为 html

这有点简化,但这样更容易理解。简化是每个例子中实际上有两个标记文件(left.html和right.html),并且代码文件都是通过pygments运行作为脚本使用的,所以code.html和code.coffee都需要使其成为构建。

现在,makefile 看起来像这样:

LIB = lib
BUILD = build
LIBEX = $(LIB)/examples
BUILDEX = $(BUILD)/examples
EXAMPLES = $(addsuffix .html,$(addprefix $(BUILDEX)/,$(shell ls …
Run Code Online (Sandbox Code Playgroud)

makefile gnu-make

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

Vim 语法:仅在区域开头突出显示匹配项

我正在为 DSL 编写 vim 语法高亮显示,其中函数遵循以下格式:

# A function with no arguments
<function>

# A function with arguments
<function(arg1, arg2)>

# A function with text
<function block of normal text>

# A function with args and text
<function(arg1,arg2) text>

# Line breaks are allowed pretty much everywhere.
<function(
        arg1,
        arg2)
    a block of text>

# As is nesting
<function(<subfunc>) Some text with <another(subfunction) etc.>>

# Backslash escape
<function(single arg with a comma: "\,") contained bracket between quotes: "\>">
Run Code Online (Sandbox Code Playgroud)

它是一种文本处理语言(想想类固醇降价),所以文本块必须是非限制性的。

我在为此编写 vim …

vim

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

球拍运行线程固定的时间

我想投机地用球拍表达,希望(但不是特别期待)一个结果.我的代码有一个很难的时间限制.是否有一种简单的方法可以运行一些球拍代码几秒钟,然后可靠地杀死它并在截止日期之前执行后备代码?

timeout racket

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

Unicode"故事的结尾"

我正在寻找一个好的角色,这意味着在unicode中"故事结束".我记得曾经看过一个看起来像分形的人,真的很酷.有谁知道我在哪里可以找到这个角色?更重要的是,当我不知道它的名字时,我在哪里可以找到具有特殊含义的unicode角色?谷歌不是很有帮助.

unicode

4
推荐指数
2
解决办法
962
查看次数

拼接matlab矢量

我有两个matlab向量.第一个有N元素,另一个有元素k*N.我知道是什么k,我想拼接列表,使第一个向量中的每个元素出现k在下一个向量的相应元素之前.例如:

k = 3
x = [1 5 9]
y = [2 3 4 6 7 8 10 11 12]
Run Code Online (Sandbox Code Playgroud)

应该结合起来看起来像这样:

z = [1 2 3 4 5 6 7 8 9 10 11 12]
Run Code Online (Sandbox Code Playgroud)

有一种简单的方法可以快速完成吗?我的x和y都很大.谢谢!

matlab

4
推荐指数
1
解决办法
3380
查看次数

我如何说服伊德里斯的整体检查员我没有使用变量?

我一直无法说服Idris整体检查器我的功能是完全的.这是我遇到的问题的简单示例版本.假设我们有一个非常简单的以下形式的表达式:

data SimpleType = Prop | Fn SimpleType SimpleType

data Expr : SimpleType -> Type where
  Var : String -> Expr type
  Lam : String -> Expr rng -> Expr (Fn dom rng)
  App : Expr (Fn dom rng) -> Expr dom -> Expr rng
Run Code Online (Sandbox Code Playgroud)

我想写这个函数

total sub : {a, b : SimpleType} -> String -> Expr a -> Expr b -> Expr b
Run Code Online (Sandbox Code Playgroud)

这将需要一个DecEq实例,SimpleType但没有太多花哨.问题是如何说服类型检查器函数是完全的.例如,考虑实施sub如下:

total sub : {a, b : SimpleType} -> String …
Run Code Online (Sandbox Code Playgroud)

idris

4
推荐指数
1
解决办法
319
查看次数

在Java中实现'Maybe'

Guava的Optional类非常接近于MaybeJava中的有用类型.我想做的就是扩展一下:

class Maybe<X> extends Optional<X> {
  public Maybe<Y> map(Function<X, Y> f) {
    if (isPresent()) {
      return Maybe.of(f.apply(get()));
    }
    return Maybe.absent();
  }
}
Run Code Online (Sandbox Code Playgroud)

那么难吗?显然是的,确实如此.Java不知道函数中的Y类型是什么map,一切都死得很厉害.是否可以map在Java中编写泛型?

java

3
推荐指数
1
解决办法
1135
查看次数

Clojure重命名已加载的库

有没有办法在用require或加载clojure库时重命名它们use

例如,有没有办法做某事

(require 'some.include.path.some-library :as something-else)
Run Code Online (Sandbox Code Playgroud)

然后引用some-library通过的元素something-else/element-name

谢谢.

clojure

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

Clojure安装项目并将其放在classpath上

我刚刚安装了标准,我希望能够从repl和其他项目中使用它.如何扩展java类路径,以便我可以从任何地方使用已安装的库?

我很感激能够轻松处理我将来工作的所有项目的答案.我正在使用leiningen,我认为当你跑步时会这样做lein install,但要么我做错了,要么就是不够.

clojure leiningen

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

Django的Cronjobs

我正在编写一个数据库应用程序,数据库的某些部分可能需要根据时间进行更新,而不是基于用户操作.

例如,可能存在每天更新的某些值,以及必须更新的某些其他值,例如,在创建数据库条目后四小时.

因此,我需要一些方法来定期更新值(每天更新数据库的脚本)以及在将来的特定时间更新值的方法(创建条目时,您需要在四小时内运行更新).

数据库将通过Web前端进行管理,因此我使用Django来设置数据库和管理,因为Django使设计数据库成为一种乐趣.但是,我不知道如何设置另一方,即在某些时候更新数据库的那一方.

你们怎么建议这样做?运行python脚本并使用每日cronjob运行它是否足够,或者这不是最佳实践?这种事情是否经常发生,并且存在这样做的工具/方法吗?

我没有这方面的经验,我想知道在我跳入并开始重新发明轮子之前它是如何完成的.

database django cron

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

正则表达式挑战:不能使用'^'

长话短说,我正在使用一个带有导致崩溃的bug的库,如果我使用带括号后的插入符号的正则表达式(例如,正则表达式[^ a]).正在处理这个错误,并且切换库不是一个简单的选择,我希望能够在现在和错误修复之间继续工作.

因此,我需要在不使用插入符的情况下表达以下两个正则表达式:

[^'] and [^"]
Run Code Online (Sandbox Code Playgroud)

可以这样做吗?如果是这样,怎么样?现在可以接受一个包含所有ascii字符的正则表达式,但我正在使用unicode,因此这不是一个不漏水的解决方法.

regex

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

标签 统计

clojure ×3

cron ×1

database ×1

django ×1

gnu-make ×1

idris ×1

java ×1

leiningen ×1

lisp ×1

makefile ×1

matlab ×1

racket ×1

regex ×1

timeout ×1

unicode ×1

vim ×1