作为我的一个课程的测试,我们的老师要求我们测试着名的欧几里德算法的递归和非递归方法:
迭代
(defun gcdi (a b)
(let ((x a) (y b) r)
(while (not (zerop y))
(setq r (mod x y) x y y r))
x))
Run Code Online (Sandbox Code Playgroud)
递归
(defun gcdr (a b)
(if (zerop b)
a
(gcdr b (mod a b))))
Run Code Online (Sandbox Code Playgroud)
然后我跑了一个测试:
(defun test-iterative ()
(setq start (float-time))
(loop for x from 1 to 100000
do (gcdi 14472334024676221 8944394323791464)) ; Fibonacci Numbers close to 2^64 >:)
(- (float-time) start))
(defun test-recursive ()
(setq start (float-time))
(loop for x from 1 to …
Run Code Online (Sandbox Code Playgroud) 我试图在ember-cli应用程序中测试模型关系,但它一直告诉我:没有找到'rateType'的模型.它似乎无法找到我的模型.
档
~app/models/account.js
~app/models/rate-type.js
Run Code Online (Sandbox Code Playgroud)
帐户模型
export default DS.Model.extend({
...
rateType: DS.belongsTo('rateType'),
});
Run Code Online (Sandbox Code Playgroud)
测试
import Ember from 'ember';
import { test, moduleForModel } from 'ember-qunit';
import Account from 'app/models/account';
import RateType from 'app/models/rate-type';
moduleForModel('account', 'Account Model', {
// Specify the other units that are required for this test.
needs: ['model:rate-type']
});
test('rateType relationship', function() {
expect(0);
this.subject(); //error here
// var relationships = Ember.get(Account, 'relationships');
// deepEqual(relationships.get('rate-type'), [
// { name: 'rateType', kind: 'belongsTo' }
// ]);
});
Run Code Online (Sandbox Code Playgroud)
我试过驼峰套管的需要属性但是根本不喜欢它. …
在elisp中,if语句逻辑只允许我使用if case和else case.
(if (< 3 5)
; if case
(foo)
; else case
(bar))
Run Code Online (Sandbox Code Playgroud)
但如果我想做别的话怎么办?我是否需要在else案例中添加新的if语句?它看起来有点乱.
我有一个使用 firebase 作为数据库的 ember 应用程序。有一次,我需要我的 nodejs 服务器进行身份验证才能读/写数据库。
如果我不需要身份验证,我可以执行以下操作:
firebase = require('firebase')
// firebaseConfigGetter() returns my webAPI key and other stuff
firebase.initializeApp(apiKeys.FirebaseConfigGetter());
// Do Server Stuff
Run Code Online (Sandbox Code Playgroud)
但是当我确实需要身份验证时,我发现了两种可行的方法。他们都使用私有 admin-sdk 密钥。所以我做的第一件事是这样的:
情况1
admin = require('firebase-admin')
// adminConfigGetter returns my private admin-sdk key and other stuff
admin.initializeApp(apiKeys.adminConfigGetter());
// Do Server Stuff
Run Code Online (Sandbox Code Playgroud)
那奏效了。但后来,我在这里读到这也很好
案例二
firebase = require('firebase')
firebase.initializeApp(apiKeys.adminConfigGetter());
// Do Server Stuff
Run Code Online (Sandbox Code Playgroud)
这两个给我的服务器的身份验证我需要,但其中一人使用require('firebase-admin')
,而其他少了点firebase = require('firebase')
。所以我很好奇:如果我通过使用Case 2获得了我需要的所有身份验证权限,那么使用Case 1有什么好处?Firebase-Admin 是否授予我特权以外的其他东西?
谢谢!
这是一个比较概念性的问题,但在今天上课,我被我的教授告诉,这将是最好使用read_csv
而不是read.csv
。有关更多上下文,我们正在tidyverse
本课程中使用。
因此,因为read_csv
和read.csv
(据我所知)都读取CSV
文件。我的问题是你应该什么时候使用一个而不是另一个。
我是套接字新手
我正在与使用 socket.io 的客户端一起运行快速网络服务器。
基本上,每当有人点击我的一个发布请求时,我都会向我的客户发出一个结果,表明该发布请求已被点击。我想象它看起来像这样。
节点服务器
const app = express();
app.post('/makeOrder', function(req, res){
// Do some database logic that pushes the order into my database
// This is where I'm stuck.
// I want to notify the client that the order is placed.
// Would it look something like this?
io.in('kitchenSocket').emit('order-placed', 'An order has been placed!');
// Last send something to finish the request
res.send({test:"order placed"})
}
Run Code Online (Sandbox Code Playgroud)
网页客户端
<script src="/socket.io.js"></script>
<script>
// What I currently have
var socket = io.connect('http://localhost:5554/kitchenSocket'); …
Run Code Online (Sandbox Code Playgroud) 有没有办法推回到elisp中的列表?
我发现最接近的是
(add-to-list 'myList myValue t) ;; t tells it to put to back of the list
Run Code Online (Sandbox Code Playgroud)
但问题是,"添加到列表"会强制实施唯一性.另一种选择是,(push 'myList myVal)
但只能推到列表的前面.我尝试使用(cons myList myVal)
IIRC而不是列表.
唯一有效的是
(setq myList (append myList (list myVal)))
Run Code Online (Sandbox Code Playgroud)
但是这种语法很可怕,感觉做一些简单的事情需要做很多额外的工作.
是否有更快的方法来推送到列表的后面.这显然是可能的(add-to-list)
,但有没有办法在不强制执行唯一性的情况下做到这一点?
换句话说,一个很好的旧回推功能,如C++和<List>
类
我有一个包含 2017 年发生的所有 Stop 和 Frisks 的表格。我得到了它们在长岛坐标中发生位置的坐标,但我想将其转换为纬度和经度坐标,以便我可以在 Leaflet 中绘制它。
我有以下代码片段:
library(sp)
library(dplyr)
fd <- "https://www1.nyc.gov/assets/nypd/downloads/excel/analysis_and_planning/stop-question-frisk/sqf-2017.csv"
stop_and_frisk <- read.csv(fd)
saf <- stop_and_frisk %>% filter(STOP_FRISK_ID < 5 ) # filtering to keep data small
saf_spdf <- saf
coordinates(saf_spdf) <- ~STOP_LOCATION_X + STOP_LOCATION_Y
CRS_obj <- CRS('+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs')
spTransform(saf_spdf, CRS_obj)
Run Code Online (Sandbox Code Playgroud)
我希望坐标会发生变化,但我不断收到错误消息
No transformation possible from NA reference system
我不知道为什么。我之前没有做过很多 CRS 转换。我认为上面的代码应该足以重现问题
通常,当用户打电话时
ember serve
默认情况下,本地主机始终为4200。如果可以指定其他端口,以便可以运行两个ember Web应用程序,那就太好了。是否可以有余烬服务于其他港口?
我关心的原因是我正在使用其中一个Web应用程序来帮助我构建另一个Web应用程序,并且使它们都同时运行会很方便,这样我就不会继续来回进行构建了。
我有一个看起来非常相似的数据框(基本上是一张城市表及其在地图上的坐标.请注意,坐标是X,Y值的列表.
foo <- data.frame(
city = c("chicago", "new york"),
coordinate = I(list(list(10, 15), list(20, 25))),
myabbr = c("chi", "ny")
)
bar <- subset(foo, select=c("city", "coordinate"))
Run Code Online (Sandbox Code Playgroud)
现在,我可以创建一个只有城市和坐标的新表.我真的希望X和Y值是一个单独的列.这是我试过的
bar <- subset(foo, select=c("city", "coordinate[1]", "coordinate[2]"))
Run Code Online (Sandbox Code Playgroud)
我不确定如何做到这一点.