标签: functional-programming

递归函数最佳实践; 这些是什么?

除典型之外,还有哪些其他与语言无关的设计递归函数的方法:

if (counter < 1) 
    return output;
else
   callSelf(); 
Run Code Online (Sandbox Code Playgroud)

还有其他方法吗?每当查看示例时,我总会看到上面代码的一个版本.

谢谢!:)

language-agnostic recursion functional-programming tail-recursion

0
推荐指数
2
解决办法
2448
查看次数

这个lambda表达式有什么问题?

我真的很难理解为什么,当我改变我的代码使用lamdba表达式时,它不起作用.

此代码在控制台上工作和打印:

object dummy = new object();
InterServer.ExecuteDataReader(new InterServerRequest(ServerID.a_01, "dbo.getbooks") 
    { 
        Params = new Dictionary<string, object> { 
            { "Tool", "d1" }, 
            { "Loc", locale == string.Empty ? null : locale } } 
    },
    (_, reader) =>
        {
            reader.AsEnumerable(r => (r.GetString(r.GetOrdinal("book")))).ToList().ForEach(Console.WriteLine);
            return new Response(dummy);
        }
    );
Run Code Online (Sandbox Code Playgroud)

此代码已更改为使用lambda表达式; 它没有打印任何东西,我不明白为什么:

InterServer.ExecuteDataReader(new InterServerRequest(ServerID.a_01, "dbo.getbooks")
    { 
        Params = new Dictionary<string, object> { 
            { "Tool", "d1" }, 
            { "Loc", locale == string.Empty ? null : locale } } 
    },
    (_, reader) =>
        {
            return new Response(new …
Run Code Online (Sandbox Code Playgroud)

c# lambda functional-programming

0
推荐指数
1
解决办法
224
查看次数

为什么在列表递归中无法推断元组类型?

我想通过使用正则表达式来优化原始文本,给出(patten,replacement)元组的列表.

我试图在list元素上使用patten匹配但是失败了,错误显示"这个表达式应该有类型字符串*字符串列表,但这里有类型'列表".

我该如何解决这个问题?非常感谢.

代码如下:

let rec refine (raw:string) (rules:string*string list) = 
    match rules with
    | (pattern,replacement) :: rest ->
        refine <| Regex.Replace(raw,pattern,replacement) rest
    | [] -> raw
Run Code Online (Sandbox Code Playgroud)

recursion f# functional-programming type-inference tuples

0
推荐指数
1
解决办法
412
查看次数

0
推荐指数
1
解决办法
544
查看次数

是否有一个带有列表列表的函数的通用名称,并返回包含这些列表内容的单个列表?

编辑:我的问题是,原本"有没有一个标准名称,以展名单列表的功能,但只有一层深?",但查克的回答是措辞更接近我其实是想问问,所以我给它改名.不过,这三个答案对我都很有用.谢谢.

"扁平化"似乎是这需要一棵树,但是建立原子组成的列表深它们嵌套,但对于只有一个级别之后停止功能的功能广为接受的名字吗?所以((1 2)((3 4)(5 6))(7 8))"somethings"到(1 2(3 4)(5 6)7 8)."某些东西"在多种语言/库中是否有共同的名称?

这个问题的答案:

在Python中展平浅层列表

建议'链'可能是一个很好的猜测,但它是否足以成为"标准"?

naming functional-programming list

0
推荐指数
1
解决办法
178
查看次数

为什么reduceRight在Javascript中返回NaN?

我正在使用Firefox 3.5.7并且在Firebug中我正在尝试测试array.reduceRight函数,它适用于简单的数组,但是当我尝试类似的东西时,我得到了一个NaN.为什么?

>>> var details = [{score : 1}, {score: 2}, {score: 3}];
>>> details
[Object score=1, Object score=2, Object score=3]
>>> details.reduceRight(function(x, y) {return x.score + y.score;}, 0)
NaN
Run Code Online (Sandbox Code Playgroud)

我也试过map,至少我可以看到每个元素的.score组件:

>>> details.map(function(x) {console.log (x.score);})
1
2
3
[undefined, undefined, undefined]
Run Code Online (Sandbox Code Playgroud)

我在https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduceRight上阅读了文档,但显然我无法在我的详细信息数组中总结所有得分值.为什么?

javascript reduce firefox functional-programming

0
推荐指数
1
解决办法
1117
查看次数

C#字典组成

假设我有一份A的仲裁清单

class A
{
string K {get;set;}
string V {get;set;}
}

...
List<A> theList = ...
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法从列表中组成字典?(如下所示)

Dictionary<string, string> dict = magic(x => x.K, x => x.V, theList)
Run Code Online (Sandbox Code Playgroud)

我不想写下面的代码:

var d = new Dictionary<string, string>
foreach(var blah in theList)
    d[blah.K] = blah.V
Run Code Online (Sandbox Code Playgroud)

.net c# dictionary functional-programming composition

0
推荐指数
1
解决办法
227
查看次数

在ruby中有begin ... rescue ... end(异常块)的功能版本吗?

我想在ruby中做这样的事情:

safe_variable = begin
  potentially_nil_variable.foo
rescue
  some_other_safe_value
end
Run Code Online (Sandbox Code Playgroud)

...并将异常块(开始/救援/结束)视为函数/块.这不起作用,但有没有办法得到类似的结果?

请注意,我实际上在做的是这个,但是IMO很丑陋:

begin
  safe_variable = potentially_nil_variable.foo
rescue
  safe_variable = some_other_safe_value
end
Run Code Online (Sandbox Code Playgroud)

UPDATE

我想我在ruby语法上遇到了一个问题.我实际上在做的是:

object_safe = begin potentially_nil_variable.foo
rescue ""
end
Run Code Online (Sandbox Code Playgroud)

错误是class or module required for rescue clause.可能它认为""应该是异常结果的占位符.

ruby functional-programming exception

0
推荐指数
1
解决办法
370
查看次数

PHP调用函数

如何将函数作为变量传递,然后使用该变量调用它?

例如

test(echo);
function test($function)
{
    $function("Test");
}
Run Code Online (Sandbox Code Playgroud)

php functional-programming

0
推荐指数
1
解决办法
143
查看次数

0
推荐指数
1
解决办法
1287
查看次数