有个主意:函数(在FP中)可以像OOP中的组件一样组成.对于OOP中的组件,我们使用接口.对于函数,我们可以使用委托.目标是实现分解,模块化和可互换性.我们可以使用依赖注入来简化它.
我试着找一些关于这个话题的东西.没运气.可能是因为没有足够大的功能程序需要这个?在搜索用FP编写的企业级应用程序时,我找到了这个列表. 现实世界中的功能编程和本文.我希望我错过了FP的杀手级应用程序,这个应用程序足够大,值得分解.
问题:您能否展示出体现真实的FP应用程序(最好是开源),它将分解用于模块?
Bonus chatter:使用的常用模式是什么?什么样的功能通常会分解成单独的模块?这些实现是否曾被用于测试目的?
我试图说出我认为对于更高阶函数的新想法.重要的是,这里是Python和Haskell中的代码来演示这个概念,后面将对此进行解释.
蟒蛇:
>>> def pleat(f, l):
return map(lambda t: f(*t), zip(l, l[1:]))
>>> pleat(operator.add, [0, 1, 2, 3])
[1, 3, 5]
Run Code Online (Sandbox Code Playgroud)
哈斯克尔:
Prelude> let pleatWith f xs = zipWith f xs (drop 1 xs)
Prelude> pleatWith (+) [0,1,2,3]
[1,3,5]
Run Code Online (Sandbox Code Playgroud)
正如您所能推断的那样,序列正在迭代,利用相邻元素作为传递函数的参数,将结果投影到新序列中.那么,有没有人看到我们创建的功能?这对功能社区的人来说是否熟悉?如果没有,我们怎么命名呢?
---- Update ----
Run Code Online (Sandbox Code Playgroud)
褶皱获胜!
Prelude> let pleat xs = zip xs (drop 1 xs)
Prelude> pleat [1..4]
[(1,2),(2,3),(3,4)]
Prelude> let pleatWith f xs = zipWith f xs (drop 1 xs)
Prelude> pleatWith (+) [1..4]
[3,5,7]
Run Code Online (Sandbox Code Playgroud) python theory haskell functional-programming higher-order-functions
如果我正确理解Hadoop生态系统,我可以运行我的MapReduce作业从HDFS或HBase获取数据.假设先前的假设是正确的,为什么我会选择一个而不是另一个?使用HBase作为MR源,是否具有性能,可靠性,成本或易用性的优势?
我能找到的最好的是这句话,"HBase是当你需要对非常大的数据集进行实时读/写随机访问时使用的Hadoop应用程序." - Tom White(2009)Hadoop:The Definitive Guide,1st Edition
我想在Python脚本中提取7-Zip档案.它工作正常,除了它吐出提取细节(这在我的情况下是巨大的).
有没有办法在提取时避免这些冗长的信息?我没有找到任何"静默"命令行选项7z.exe.
我的命令是
7z.exe -o some_dir x some_archive.7z
Run Code Online (Sandbox Code Playgroud) 我在尝试实现Sample Sync Adapter应用程序时收到了上述异常.我看过很多与此问题相关的帖子,但没有令人满意的答复.
所以我会在这里记下我的解决方案,以防其他人遇到同样的问题.
人们在iPhone OS上使用/做什么来创建照片滤镜或类似Photoshop的效果?像B&W,棕褐色,交叉处理,'复古'等等.我看到ImageMagick可能会做很多这样的未来,任何其他选择吗?
我和这个家伙有很多相同的问题:http://www.ruby-forum.com/topic/197440.
我试图触摸一个列(:touched_at)而不进行自动更新:updated_at,但是观察SQL查询时,它总是更新到当前时间.
我认为它可能与我使用它的特定模型有关,所以我尝试了几个不同的具有相同结果的模型.
有人知道:updated_at在触摸不同的列时可能会导致它始终设置的原因吗?touch在write_attribute内部使用,所以它不应该这样做.
编辑:
一些澄清...... Rails 2.3.5文档touch说明"如果传递属性名称,该属性用于触摸而不是updated_at/on属性." 但我的行为并非如此.也许这是一个文件偏离代码实际状态的情况?
我试图弄清楚在表格单元格上使用align属性与使用text-align css属性之间的区别.下面的代码显示了IE与其他人的不同结果.在IE中,对齐最终对齐每个子子节点,因此文本'test'居中对齐,而在FF/Webkit中则不是这样,并且它保持左对齐.什么是正确的行为?
<!DOCTYPE html>
<html>
<head>
<style>
table { width: 60%; }
table td { border: 1px solid black; }
</style>
</head>
<body>
<table>
<tbody>
<tr>
<td align='center'>
<table>
<tbody>
<tr>
<td>test</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 如果出现未处理的异常,C++是否提供了一种"显示"可视化内容的方法?
我想做的是做一些事情,assert(unhandled exception.msg())如果它真的发生(如下面的例子):
void foo() {
throw std::exception("Message!");
}
int main() {
foo();
}
Run Code Online (Sandbox Code Playgroud)
我希望这种代码不会立即终止(因为异常未处理),而是显示自定义断言消息(Message!实际上).
那可能吗?
7zip ×1
activerecord ×1
alignment ×1
android ×1
c++ ×1
components ×1
exception ×1
hadoop ×1
handler ×1
haskell ×1
image ×1
imagemagick ×1
iphone ×1
objective-c ×1
python ×1
text-align ×1
theory ×1
vim ×1