到目前为止,你对我非常有帮助,我希望你能帮我理解这个.我正在构建一个用复杂矩阵进行计算的项目.我一直在使用mikera/core.matrix.complex,它使用mikera/core.matrix作为矩阵内容,而complex.core则用于在clojure中定义复数.
我希望能够做任何和所有算术,包括使用像e (def e (Math/E))和pi 这样的无理数(def pi (Math/PI)),包括可能复杂或不复杂的矩阵数学.当我混合来自不同库的函数时,问题出现了.
现在我的命名空间如下所示:
(ns qgame.utils.math
(:require
[clojure.walk :as w :refer [postwalk
prewalk]]
[clojure.core.matrix :as mat]
[clojure.core.matrix.complex :as compl]
[incanter.core :as ic]
[complex.core :as c :refer [+ - / *]]))
Run Code Online (Sandbox Code Playgroud)
如果我这样做(mat/mmul matrix1 matrix2),那么所有东西都被视为常规数字,并且使用复数将其混淆.我得到了很多ClassCastException org.apache.commons.math3.complex.Complex cannot be cast to java.lang.Number.如果我只需要core.matrix.complex而不需要core.matrix,那么矩阵函数都不起作用.
对于类似的东西也一样(+ 3 4).如果我直接(use 'complex.core)在一个repl,然后那将评估(7.0, 0.0),这是我想要的,否则它只是出来7.
我觉得我让它变得比这更复杂,core.matrix.complex看起来像core.matrix和clojure.core中的所有东西都有扩展,但它没有使用它我的命名空间声明.我对Clojure协议并不熟悉,所以我肯定会遗漏一些东西.我只想要包含所有三个库,并且要在复数的上下文中完成所有数学,即1 =(1.0,0.0),并且(Math/exp (* pi (complex 0 1)) => (-1.0, 0.0)
我该怎么做呢?对不起,如果我不清楚,我会尝试澄清人们对我问的问题. …
有一个网站包含一个包含25个条目列表的页面,其中每个条目都是指向包含我需要的一些信息的页面的链接.我想进入列表页面,然后:1)点击链接到第一个条目2)检索所有的html 3)点击返回列表页面(有一个按钮)4)重复每个其他列表
我也想尽可能有效地做到这一点,我被告知这意味着利用承诺.这是我的代码草图,它不起作用:
var Nightmare = require('nightmare');
var nightmare = Nightmare({ openDevTools: true, show: true })
var Xray = require('x-ray');
var x = Xray();
var resultArr = [];
nightmare
.goto(hidTestURL)
.wait(2500)
.click('input[name="propertySearchOptions:advanced"]') //start navigating to listing page
.wait(2500)
.type('input[name="propertySearchOptions:streetName"]', 'Main')
.wait(2500)
.select('select[name="propertySearchOptions:recordsPerPage"]', '25')
.wait(2500)
.click('input[name="propertySearchOptions:search"]') //at listing page
.wait(2500)
.then(function(){
nightmare
.click('a[href^="Property.aspx?prop_id=228645"]') //first entry
.evaluate(function(){ //retrieve info
var resultArr = [];
resultArr.push(document.querySelector('html').innerHTML);
})
})
nightmare
.click('a[id="propertyHeading_searchResults"]') //return to listing page
.evaluate(function(){
return resultArr.push(document.querySelector('html').innerHTML); retrieve listing page info to show that …Run Code Online (Sandbox Code Playgroud)