看看软件开发的酷新原则:
新方法似乎是潜入并编写实现范围目标的第一次迭代所需的内容,并根据需要进行重构以获得优雅的解决方案.您的代码库逐渐增长,并且从未有过大规划/分层设计阶段.对我来说,这表明软件设计(虽然它是值得的)已被归入重构,因为这是优雅代码的来源,而不是功能的增量添加.
我错了吗?
为了在一年中的每个工作日为数组元素分配足够的空间,我正在尝试计算出我需要的最大行数.这让我想到了如何解决这个问题.
您是否需要计算未来n年每年的天数并继续这样做?或者(我怀疑)有一个更优雅的解决方案涉及数字365,366,2和7?
哪些图书馆会有帮助?
我希望能够允许社区成员提供他们自己的javascript代码供其他人使用,因为用户的想象力远远超过我能想到的任何东西.
但这提出了安全性的固有问题,特别是当目的是允许外部代码运行时.
那么,我可以禁止eval()提交并完成它吗?或者还有其他方法来评估代码或导致javascript中的大规模恐慌?
还有其他事情要禁止,但我主要担心的是,除非我能阻止执行字符串,否则我可以规避任何其他过滤器以用于特定方法.可行,或者我是否必须诉诸要求作者提供Web服务界面?
我有一些嵌套的数据结构,每个都是这样的:
[ ('foo', [ {'a':1, 'b':2},
{'a':3.3, 'b':7} ]),
('bar', [ {'a':4, 'd':'efg', 'e':False} ]) ]
Run Code Online (Sandbox Code Playgroud)
我需要比较这些结构,看看是否有任何差异.如果没有编写显式遍历结构的函数,是否存在执行此类递归比较的现有库或方法?
我想要dLower并dHigher分别拥有两个双精度值中的较低和较高的值 - 即,如果它们是错误的,则对它们进行排序。最直接的答案似乎是:
void ascending(double& dFirst, double& dSecond)
{
if(dFirst > dSecond)
swap(dFirst,dSecond);
}
ascending(dFoo, dBar);
Run Code Online (Sandbox Code Playgroud)
但是这似乎是一件很明显的事情,我想知道我是否只是没有使用正确的术语来找到标准例程。
另外,您将如何使其通用?
很长一段时间的读者,第一个问题.fsi.exe是一个.NET可执行文件,因此包含自己的程序集,其中包含所有美妙的方法以及fsi用于执行F#脚本的内容.
查看.NET Reflector中的程序集(选择你的类,但Shell是最好的例子)显示了一堆看起来像装饰C++函数的垃圾*名称(例如,来自Dependency Walker).顺便提一下,F#程序集的编译方式大致相同,有很多垃圾*名称,这让我觉得fsi.exe是用F#编写的,也许是作为可用性证明?
无论如何,这是我的问题:有没有人深入研究fsi.exe并想出如何将其嵌入到.NET应用程序中?因为我想使用F#作为脚本语言,但程序编译为(惊喜)程序,脚本必须由fsi.exe执行,这在我的域中是不可接受的(我需要一个持久的VM).我不希望有关使用fsi.exe的操作指南,但我很想知道是否有人玩过它,如果有的话,你发现了它是如何工作的?
谢谢你的时间.
*随便看一眼垃圾.显然,他们的格式是这种特殊的方式,因为特殊原因是在幕后.
下面这个职位上perlgeek,它给钻营的例子:
my &add_two := * + 2;
say add_two(5); # 7
Run Code Online (Sandbox Code Playgroud)
说得通.但是,如果我将中+缀运算符替换为中min缀运算符:
my &min_two := * min 2;
say min_two(5); # Type check failed in binding; expected 'Callable' but got 'Int'
Run Code Online (Sandbox Code Playgroud)
即使尝试+通过infix语法调用也会失败:
>> my &curry := &infix:<+>(2, *);
Method 'Int' not found for invocant of class 'Whatever'
Run Code Online (Sandbox Code Playgroud)
我是否需要将Whatever限定为数值,如果是,如何?还是我完全忽略了这一点?
[编辑新rakudo的回应; 以上版本字符串:perl6 version 2014.08 built on MoarVM version 2014.08]
Pagerank在一系列页面的节点图上工作,并且由它们各自的向内和向外链接形成有向边.因此,特定页面的等级在节点图中广泛地是局部诱导的效果.
另一方面,SVD在整个值矩阵上工作,并且没有方向性 - 站点A和站点B之间的链接仅在正确的矩阵元素上注册为1.它是一个全球系统,因此排名是一种全球性的影响.
鉴于Web派生矩阵的极度稀疏性,我认为SVD在这里表现不佳,因为它需要完整的数据集,并且具有显着的内存要求.
真的吗?Pagerank是否超越SVD主要是因为它是基于节点图的算法?Pagerank如何推断出一个页面超出提及单词次数的语义相关性?或者这是第二步,是在Pagerank对页面进行排名后执行的吗?
此代码通过一组路径中唯一的基本名称存根的哈希键来编译集合.
%stubs = map { $f=basename $_; $f =~ /^([A-Za-z]+[0-9]+)\./ ; $1=>() } @pathlist;
Run Code Online (Sandbox Code Playgroud)
为什么我需要$f这里的参考?我以为我会好的:
%stubs = map { basename; /^([A-Za-z]+[0-9]+)\./; $1=>() } @pathlist;
Run Code Online (Sandbox Code Playgroud)
但我得不到匹配.我不允许在地图块中修改$ _吗?
对于那些想知道代码在做什么的人:
对于每个$ path(@pathlist),它获取基本名称,匹配第一个字母数字序列,然后返回第一个括号匹配作为空列表值的键.例:
/some/dir/foo123.adfjijoijb
/some/dir/foo123.oibhobihe
/some/dir/bar789.popjpoj
Run Code Online (Sandbox Code Playgroud)
回报
foo123 => ()
bar789 => ()
Run Code Online (Sandbox Code Playgroud)
之后我使用地图的键作为一组值进行处理.
我有一个类型,我可以通过它的方法访问
SomeTrait::<T>::method()
Run Code Online (Sandbox Code Playgroud)
但我不明白这和
<SomeTrait<T>>::method()
Run Code Online (Sandbox Code Playgroud)
在 C++ 中,我希望这样:
SomeTrait<T>::method()
Run Code Online (Sandbox Code Playgroud)
这两个有区别吗?他们似乎都在调用on的<T>专业化。methodSomeTrait