小编Jou*_*nen的帖子

LaTex for .NET

我正在使用ItextSharp生成PDF.作为我们输出的一部分,我们有很多与数学相关的内容.也许我们可以使用某种Latex库将结果提供给ItextSharp来生成PDF.我一直在谷歌上搜索一段时间,但一无所获.你知道是否存在.NET的乳胶库吗?

另外,如果没有此Latex帮助,您知道ItextSharp是否可以处理此问题吗?

.net pdf latex itextsharp

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

clojure - 不同命名空间中的eval代码

我正在编写像REPL Server这样的代码.用户的请求评估此功能:

(defn execute [request]
  (str (try
          (eval (read-string request))
        (catch Exception e (.getLocalizedMessage e)))))
Run Code Online (Sandbox Code Playgroud)

每个客户端都在单独的线程 但它们具有相同的命名空间.如何在动态创建的命名空间中运行代码?因此,当新客户端连接时,我想创建新的命名空间并在那里运行客户端处理循环代码.或者也许可以(eval ..)在其他命名空间中运行?

谢谢.

UPD.
解决了!

执行功能:

(defn execute  
  "evaluates s-forms"  
  ([request] (execute request *ns*))  
  ([request user-ns]  
    (str  
      (try  
        (binding [*ns* user-ns] (eval (read-string request)))  
        (catch Exception e (.getLocalizedMessage e))))))
Run Code Online (Sandbox Code Playgroud)

每个客户端通过以下方式获取自己的命名空间

(defn generate-ns  
  "generates ns for client connection"  
  [] (let [user-ns (create-ns (symbol (str "client-" (Math/abs (.nextInt random)))))]  
    (execute (str "(clojure.core/refer 'clojure.core)") user-ns)  
    user-ns))`  

(defn delete-ns  
  "deletes ns after client disconnected"  
  [user-ns] (remove-ns …
Run Code Online (Sandbox Code Playgroud)

namespaces eval clojure

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

在python中拆分字符串

我有一个字符串,如下所示:

这是[支架测试]"和引用测试"

我正在尝试用Python编写一些东西,用空格分割,同时忽略方括号和引号中的空格.我正在寻找的结果是:

['this','is','支架测试','和报价测试']

python string parsing split tokenize

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

Numpy沿新轴重复箭头

什么是最好/最高效的方式?

x是数组,n是我想要重复的次数:

np.repeat(x[None,...], n, axis=0)
Run Code Online (Sandbox Code Playgroud)

要么

ones = [1] * len(x.shape)
np.tile(x, tuple(n, *ones))
Run Code Online (Sandbox Code Playgroud)

请注意,对于已知的数组大小,后者变得简单:

np.tile(x, (n, 1, 1))  # x is 2D
Run Code Online (Sandbox Code Playgroud)

python numpy multidimensional-array

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

如何在Clojure中使用definterface?

似乎Clojure 1.2.0有一个definterface表单,显然是用于创建Java接口,有些人建议使用它(例如,这个数字运算问题的一个答案).但是,我似乎无法找到任何文档或如何使用它的实质示例.我不是在寻找合适的地方,还是它实际上是一个不应该被使用的早期功能?我对指向文档或示例的指针很感兴趣definterface.

clojure

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

哪些Vars影响Clojure功能?

如何以编程方式确定哪些Vars可能会影响Clojure中定义的函数的结果?

考虑一下Clojure函数的这个定义:

(def ^:dynamic *increment* 3)
(defn f [x]
  (+ x *increment*))
Run Code Online (Sandbox Code Playgroud)

这是(也是(1)的一个功能x,但也是(1) ;但我不太关心它.在为此函数编写测试时,我想确保控制所有相关输入,因此我执行以下操作:*increment*clojure.core/+

(assert (= (binding [*increment* 3] (f 1)) 4))
(assert (= (binding [*increment* -1] (f 1)) 0))
Run Code Online (Sandbox Code Playgroud)

(想象一下,这*increment*是某人可能合理改变的配置值;我不希望此功能的测试需要在发生这种情况时进行更改.)

我的问题是:我如何写一个断言,它的值(f 1)可以依赖*increment*但不取决于任何其他Var?因为我希望有一天有人会重构一些代码并导致函数成为现实

(defn f [x]
  (+ x *increment* *additional-increment*))
Run Code Online (Sandbox Code Playgroud)

并忽略更新测试,我想测试失败,即使*additional-increment*是零.

这当然是一个简化的例子 - 在一个大型系统中,可以有很多动态Vars,它们可以通过一长串函数调用来引用.该解决方案需要工作,即使f调用g它调用h它引用一个VAR.如果它没有声称(with-out-str (prn "foo"))取决于它会很好*out*,但这不太重要.如果被分析的代码调用eval或使用Java互操作,当然所有的赌注都是关闭的.

我可以想到三类解决方案:

  1. 从编译器获取信息

    我想编译器会扫描函数定义以获取必要的信息,因为如果我尝试引用一个不存在的Var,它会抛出:

    user=> (defn g [x] …
    Run Code Online (Sandbox Code Playgroud)

static-analysis dynamic-analysis clojure free-variable

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