小编Phi*_*l H的帖子

测试值是否为函数

我需要测试一个表单的值是否onsubmit是一个函数.格式通常是onsubmit="return valid();".有没有办法判断这是否是一个函数,如果它是可调用的?使用typeof只返回它是一个字符串,这对我没有多大帮助.

编辑:当然,我明白"返回有效();" 是一个字符串.我把replace它归结为"valid();",甚至是"valid()".我想知道其中任何一个是否是一个功能.

编辑:这里有一些代码,可能有助于解释我的问题:

$("a.button").parents("form").submit(function() {
    var submit_function = $("a.button").parents("form").attr("onsubmit");
    if ( submit_function && typeof( submit_function.replace(/return /,"") ) == 'function' ) {
        return eval(submit_function.replace(/return /,""));
    } else {
        alert("onSubmit is not a function.\n\nIs the script included?"); return false;
    }
} );
Run Code Online (Sandbox Code Playgroud)

编辑2:这是新代码.似乎我仍然需要使用eval,因为调用form.submit()不会触发现有的onsubmits.

var formObj = $("a.button").parents("form");
formObj.submit(function() {
    if ( formObj[0].onsubmit && typeof( formObj.onsubmit ) == 'function' ) {
        return eval(formObj.attr("onsubmit").replace(/return /,""));
    } else {
        alert("onSubmit is not a function.\n\nIs …
Run Code Online (Sandbox Code Playgroud)

javascript typeof onsubmit

85
推荐指数
4
解决办法
10万
查看次数

如何比较scala中的两个数组?

val a: Array[Int] = Array(1,2,4,5)
val b: Array[Int] = Array(1,2,4,5)
a==b // false
Run Code Online (Sandbox Code Playgroud)

是否有模式匹配方式来查看两个数组(或序列)是否相同?

arrays scala pattern-matching

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

我如何匹配多个参数?

我有一个功能:

def func(a: int, b: int, c: double): int
Run Code Online (Sandbox Code Playgroud)

我想要匹配各种可能的场景

  1. 无论在哪里c0,返回b-a
  2. c> 9,返回0
  3. 无论何处a=b返回0

依此类推,在做一些更复杂的逻辑之前,如果没有满足上述要求.

我必须先单独匹配c,还是可以匹配a,b,c,比如_,_,0

scala pattern-matching

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

OO设计在语义或封装方面的优势是什么?

面向对象设计(OOD)结合了数据及其方法.据我所知,这实现了两件好事:它提供了封装(所以我不关心那里有什么数据,只关心我如何得到我想要的值)和语义(它将数据与名称联系起来,以及它方法始终如一地使用数据.

那么OOD的优势在哪里呢?相反,函数式编程将丰富性归因于动词而不是名词,因此封装和语义都是由方法而不是数据结构提供的.

我使用的是一个处于功能末端的系统,并且不断地用于OO的语义和封装.但我可以看到OO的封装可能成为对象灵活扩展的障碍.所以目前,我可以看到语义更强大.

或封装是所有有价值代码的关键?

编辑:我的意思是OO提供的封装类型.changeColor(door,blue)成为door.changeColor(blue).

language-agnostic oop encapsulation functional-programming semantics

19
推荐指数
3
解决办法
2049
查看次数

如何为我的python脚本创建本地Web服务器?

我希望使用本地Web服务器为用户运行一系列python脚本.出于各种不可避免的原因,python脚本必须在本地运行,而不是在服务器上运行.因此,我将使用HTML +浏览器作为用户界面,我很满意,用于前端.

因此,我一直在寻找能够执行python脚本的轻量级Web服务器,它位于机器的后台,理想情况下是Windows服务.安全性和可扩展性不是高优先级,因为它们都在内部在小型网络上运行.

我应该将本机python Web服务器作为Windows服务运行(在这种情况下,如何)?或者将Apache安装到用户的计算机上并以CGI身份运行同样容易?由于这都是本地的,性能也不是问题.

还是我错过了一些明显的东西?

python webserver simplehttpserver

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

生成排序的随机整数而没有排序?上)

刚看了一个关于生成100个随机整数的排序列表的代码高尔夫问题.然而,突然出现的是,您可以生成一个正增量列表,并将它们添加到运行总计中,这样:

deltas: 1 3 2  7  2
ints:   1 4 6 13 15
Run Code Online (Sandbox Code Playgroud)

实际上,你会使用浮点数,然后标准化以适应某些上限,并且圆形,但效果是相同的.

虽然它不会产生更短的代码,但如果没有排序步骤肯定会更快.但我没有真正处理的事情是这样的:整数分布是否与从均匀分布的概率密度函数生成100个随机整数相同?

编辑:示例脚本:

import random,sys
running = 0
max = 1000
deltas = [random.random() for i in range(0,11)]
floats = []
for d in deltas:
    running += d
    floats.append(running)
upper = floats.pop()
ints = [int(round(f/upper*max)) for f in floats]
print(ints)
Run Code Online (Sandbox Code Playgroud)

谁的输出(公平骰子滚动)是:

[24, 71, 133, 261, 308, 347, 499, 543, 722, 852]
Run Code Online (Sandbox Code Playgroud)

更新: Alok的回答Dan Dyer的评论指出,使用指数分布进行增量可以得到均匀的整数分布.

sorting random math

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

是否继续传递风格与管道有什么不同?

我一直在学习延续传递样式,特别是在javascript中实现的异步版本,其中一个函数将另一个函数作为最终参数并创建一个异步调用,将返回值传递给第二个函数.

但是,我不能完全看到延续传递除了重新创建管道(如在unix命令行管道中)或流之外还有什么作用:

replace('somestring','somepattern', filter(str, console.log));
Run Code Online (Sandbox Code Playgroud)

VS

echo 'somestring' | replace 'somepattern' | filter | console.log
Run Code Online (Sandbox Code Playgroud)

除了管道更多,更清洁.使用管道,很明显数据被传递,同时执行被传递给接收程序.事实上,对于管道,我希望数据流能够继续向下传递管道,而在CPS中我期望一个串行过程.

或许可以想象,如果通信对象和更新方法与数据一起传递,CPS可以扩展到连续管道,而不是完整的切换和返回.

我错过了什么吗?CPS在某些重要方面有所不同(更好吗?)?

要清楚,我的意思是继续传递,其中一个函数将执行传递给另一个函数,而不仅仅是普通的回调.CPS似乎暗示将函数的返回值传递给另一个函数,然后退出.

javascript pipe continuation-passing

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

是否有循环散列函数?

考虑到关于测试字符串旋转的这个问题,我想知道:是否存在循环/循环散列函数?例如

h(abcdef) = h(bcdefa) = h(cdefab) etc
Run Code Online (Sandbox Code Playgroud)

用于此的包括可伸缩算法,其可以相互检查n个字符串以查看一些是其他的旋转.

我想哈希的本质是提取特定于订单但不是位置特定的信息.也许某些东西找到了确定性的"第一个位置",旋转到它并散列结果?

这一切似乎都是合情合理的,但此刻略显超出我的掌握; 它必须已经在那里......

string hash rotation

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

数据和代码之间有什么区别?

举个例子,考虑超市购物者可以享受的一系列折扣.

我们可以将这些规则定义为某些标准方式的数据(合格项目列表,适用日期,优惠券代码),并编写通用代码来处理这些规则.或者,我们可以将每个代码编写为一大块代码,它会根据客户的购物清单检查相应的内容并返回任何适用的折扣.

您可以合理地将规则存储为对象,序列化为Blob或存储在代码文件中,以便每个规则可以选择自己在数据和代码之间的划分,以允许将来的规则不符合上面考虑的通用处理器的类型.

通过检查应该在文件或数据库中的6个不同的事物的if语句来批评混合数据的代码通常很容易,但是有一个规则有助于边缘情况吗?

或者这是面向对象设计的重点,让我们不要担心数据和代码之间的界限?

澄清一下,基本问题是:你如何编写上面的例子?是否有一条经验法则让您决定什么是数据?什么是代码?

(注意:我知道,代码可以编译,但在动态语言和JIT编译的世界中,即使这是一个模糊的概念.)

language-agnostic oop functional-programming data-structures

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

估计/预测下载完成时间

我们都在"剩下的X分钟"对话中嘲笑,这似乎过于简单,但我们怎样才能改进呢?

实际上,输入是直到当前时间的下载速度集合,我们需要使用它来估计完成时间,可能有一定的确定性,例如使用一些Y%置信区间"剩余20分钟".

执行此操作的代码可以放在一个小库中,并在各个项目中使用,所以它真的很难吗?你会怎么做?你对以前的下载速度有什么加权?

或者那里有一些开源代码?

编辑:总结:

  1. 通过更好的算法/过滤器等改善估计的完成时间
  2. 提供间隔而不是单个时间('1h45-2h30分钟'),或仅限制精度('约2小时').
  3. 说明进展何时停滞 - 尽管如果进展一直停滞然后继续,我们应该能够解决这个问题.也许'大约2个小时,目前停滞不前'

algorithm math estimation probability

15
推荐指数
3
解决办法
3219
查看次数