标签: definition

currying和部分应用有什么区别?

我经常在互联网上看到各种各样的抱怨,其他人的currying例子并不是currying,但实际上只是部分应用.

我没有找到关于部分应用是什么的合理解释,或者它与currying有何不同.似乎存在普遍的混淆,在某些地方将等效的例子描述为currying,在其他地方描述为部分应用.

有人可以向我提供这两个术语的定义,以及它们如何区别的细节吗?

language-agnostic terminology definition currying partial-application

416
推荐指数
10
解决办法
5万
查看次数

什么是Y-combinator?

Y-combinator是一种来自事物"功能"方面的计算机科学概念.大多数程序员对组合器一无所知,如果他们甚至听说过它们的话.

  • 什么是Y-combinator?
  • 组合器如何工作?
  • 它们有什么用?
  • 它们在程序语言中有用吗?

theory computer-science functional-programming combinators definition

381
推荐指数
14
解决办法
10万
查看次数

什么是样板代码?

一位同事从未听说过这一点,我无法提供真正的定义.对我来说,它总是一个'我知道 - 当我看到它'的例子.

奖金问题,谁来源于这个词?

terminology definition boilerplate

364
推荐指数
11
解决办法
14万
查看次数

软件设计与软件架构

有人可以解释软件设计和软件架构之间的区别吗?

进一步来说; 如果你告诉别人告诉你"设计" - 你期望他们出现什么?"架构"也是如此.

我目前的理解是:

  • 设计:特定模块/系统部分的UML图/流程图/简单线框(用于UI)
  • 架构:组件图(显示系统的不同模块如何与其他系统和其他系统通信),要使用的语言,模式......?

如我错了请纠正我.我已经提到维基百科有关于http://en.wikipedia.org/wiki/Software_designhttp://en.wikipedia.org/wiki/Software_architecture的文章,但我不确定我是否正确理解它们.

architecture definition

342
推荐指数
11
解决办法
22万
查看次数

如何在运行时找到方法的定义?

我们最近遇到了一个问题,即在发生一系列提交后,后端进程无法运行.现在,我们都是优秀的小男孩和女孩,并rake test在每次办理登机手续后都跑了,但由于Rails图书馆装载中的一些奇怪现象,它只发生在我们直接从生产模式中的Mongrel运行时.

我追踪了这个错误,这是因为一个新的Rails gem以一种破坏运行时Rails代码中一个狭隘用法的方式覆盖了String类中的一个方法.

无论如何,长话短说,有没有办法在运行时询问Ruby在哪里定义了一个方法?这样的whereami( :foo )回归/path/to/some/file.rb line #45?在这种情况下,告诉我它是在类String中定义的将是无益的,因为它被某些库重载.

我不能保证源代码存在于我的项目中,因此grepping 'def foo'不一定会给我我需要的东西,更不用说我是否有很多东西 def foo,有时候直到运行时我才知道我可能正在使用哪一个.

ruby methods runtime ruby-on-rails definition

325
推荐指数
7
解决办法
8万
查看次数

什么是Web服务端点?

假设我的Web服务位于,http://localhost:8080/foo/mywebservice我的WSDL位于http://localhost:8080/foo/mywebservice?wsdl.

http://localhost:8080/foo/mywebservice一个端点,即它是否与我的Web服务的URI相同,或者SOAP消息收到和解组的位置是什么?

你能否向我解释它是什么以及它的目的是什么?

web-services terminology definition endpoint

311
推荐指数
6
解决办法
41万
查看次数

Haskell:什么是弱头正常形式?

什么是弱头范式(WHNF)是什么意思?什么是头标准型(HNF)和范式(NF)是什么意思?

真实世界Haskell说:

熟悉的seq函数将表达式计算为我们称之为head normal form(缩写为HNF)的表达式.它一旦到达最外面的构造函数("头部")就会停止.这与正常形式(NF)不同,其中表达式被完全评估.

您还将听到Haskell程序员引用弱头正常形式(WHNF).对于正常数据,弱头正常形式与头部正常形式相同.差异只出现在功能上,而且我们在这里无关紧要.

我已经阅读了一些资源和定义(Haskell WikiHaskell邮件列表自由词典),但我没有得到它.有人可能举一个例子或提供外行定义吗?

我猜它会类似于:

WHNF = thunk : thunk

HNF = 0 : thunk 

NF = 0 : 1 : 2 : 3 : []
Run Code Online (Sandbox Code Playgroud)

如何做seq($!)与WHNF和HNF有关?

更新

我还是很困惑.我知道有些答案会忽略HNF.通过阅读各种定义,似乎WHNF和HNF中的常规数据之间没有区别.但是,它似乎与功能有所区别.如果没有差异,为什么还seq需要foldl'

另一个混淆点来自Haskell Wiki,它指出seq减少到WHNF,并且对以下示例不做任何处理.然后他们说他们必须seq用来强迫评估.那不是强迫它到HNF吗?

常见的新手堆栈溢出代码:

myAverage = uncurry (/) . foldl' (\(acc, len) x -> (acc+x, len+1)) (0,0)
Run Code Online (Sandbox Code Playgroud)

了解seq和弱头正常形式(whnf)的人可以立即明白这里出了什么问题.(acc + x,len + 1)已经在whnf中,所以seq将值减少到whnf,对此无效.这段代码将像原始的foldl示例一样构建thunks,它们只是在元组内部.解决方案只是强制元组的组件,例如

myAverage …
Run Code Online (Sandbox Code Playgroud)

haskell definition strictness weak-head-normal-form

279
推荐指数
6
解决办法
3万
查看次数

什么是循环不变量?

我正在阅读CLRS的"算法简介".在第2章中,作者提到了"循环不变量".什么是循环不变量?

algorithm terminology definition clrs loop-invariant

250
推荐指数
7
解决办法
16万
查看次数

什么是"线程"(真的)?

我一直试图找到一个好的定义,并了解一个线程到底是什么.

似乎我必须遗漏一些明显的东西,但每当我读到一个线程是什么时,它几乎是一个循环定义,一个"线程是一个执行线程"或"一种分为运行任务的方法".呃呃.咦?

从我所读到的看来,线程并不是真正具体的东西,就像进程一样.它实际上只是一个概念.从我所理解的这种工作方式,处理器为程序(这已被称为一个执行一些命令执行的线程),那么当它需要切换到处理一些其他节目了一下,它存储状态的它正在某个地方执行的程序(线程本地存储),然后开始执行其他程序的指令.而来回.这样,一个线程实际上只是当前正在运行的程序的"执行路径之一"的概念.

与流程不同,流程确实是某种东西 - 它是资源的集合等.

作为一个定义的例子并没有真正帮助我...

来自维基百科:

"计算机科学中的一个线程是执行线程的缩写.线程是程序将(称为"拆分")本身划分为两个或多个同时(或伪同时)运行任务的一种方式.线程和进程不同于一个操作系统到另一个,但通常,一个线程包含在进程内,同一进程中的不同线程共享相同的资源,而同一多任务操作系统中的不同进程则不共享.

我是对的吗?错误?真的是什么线程?

编辑:显然,一个线程也给出了自己的调用堆栈,所以这是有点的具体事情.

multithreading process definition

218
推荐指数
10
解决办法
11万
查看次数

编程中的托管代码或非托管代码是什么?

我在我的C#代码中使用了一个特定的命令,该代码运行良好.但是,据说在"非托管"代码中行为不端.

什么是托管代码或非托管代码?

.net c# unmanaged managed definition

145
推荐指数
5
解决办法
16万
查看次数