标签: functional-programming

是否有一个标准的Python函数可以接受任意数量的参数并且什么都不做?

我正在用Python做一些函数式编程,如果我有一个函数可以接受任意数量的参数但没有做任何事情,那么它将非常有用,可以用作一些东西的默认值.我想知道是否有人知道一个人的存在,或者我怎么能自己创造一个.

看到回复后编辑:另外,我是python的新手,所以对异国语法的任何细化都会非常有用.星星是什么意思?

python functional-programming

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

是否可以在Scala中执行此操作(不改变类的内部状态)?

比方说,有一个叫做的课RemoteIdGetter.它从服务器返回一个密钥.但是它只向服务器发出请求,如果密钥不够"新鲜",意味着它最后一次被请求,则大于或等于5分钟(300秒).否则,它返回密钥的本地"缓存"值.

我需要在没有( var)改变内部状态 RemoteIdGetter或使用纯函数方法的情况下做到这一点.

它可能看起来像这样:

class RemoteIdGetter {
  def key = {
    if (!needToAskServer) // return the local "cached" value of the key
    else makeRequest

  }

  def makeRequest = // make a request to a remote server to get the key
  def time = // current date-time
  def lastUpdatedTime = // the last date-time a key has been updated 
                        // (requested from the server)
  def needToAskServer = time - lastUpdatedTime …
Run Code Online (Sandbox Code Playgroud)

functional-programming scala

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

javascript/nodejs中的功能思维

这些天我是关于javascript中的功能性思考的新手.我的背景主要是Java/Ruby中的OOP.

假设我想在节点中获取用户输入,我可以这样做:

process.stdin.resume();
process.stdin.setEncoding("ascii");
var input_buffer = "";

process.stdin.on("data", function (input) {
  input_buffer += input;
});

function process_input()
{
  // Process input_buffer here.
  do_something_else();
}

function do_something_else()
{

}
process.stdin.on("end",process_input);
Run Code Online (Sandbox Code Playgroud)

我在这里保持明确的状态.实现同样的功能是什么?

javascript functional-programming node.js

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

如何使用scala中的函数编程过滤列表?

我有两个清单:

val list1 = List("asdf", "fdas", "afswd", "dsf", "twea", "rewgds", "werwe", "dsadfs");
val list2 = List();
Run Code Online (Sandbox Code Playgroud)

我想过滤list1和setup2中的所有项目,以便它只包含不包含字母'a'的项目.我知道如何使用命令式编程来完成这项工作,但是如何通过功能编程实现这一目标?

java functional-programming scala

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

为什么我不能在Scala中从Option到List flatMap?

当我尝试

Some(1).flatMap(_ => List(2))

我明白了

 error: type mismatch;
 found   : List[Int]
 required: Option[?]
Run Code Online (Sandbox Code Playgroud)

但是做得Some(1).map(_ => List(2)).flatten很好.为什么我在第一种情况下遇到编译错误?

functional-programming scala

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

使用结果将方法应用于所有方法

当涉及函数式语言时,我想起了一种在对象列表上调用方法的方法,其中下一个方法调用使用前一个调用的结果作为输入以及下一个列表项.

在Python中,以下代码使用for循环执行相同的操作(在此实例中,它基于整数列表构建二叉树).假设binary_insert将树和整数作为参数.

t = None
for x in [4, 2, 1, 5, 6, 3, 7, 9, 8, 12, 10, 11, 13, 15, 14]:
    t = binary_insert(t, x)
print t
Run Code Online (Sandbox Code Playgroud)

基本上我试图记住那种功能应用程序的名称.如果有一个Python等价物,那就太棒了.

python functional-programming

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

在Scala中返回代码块

我试图在Scala中实现闭包示例,来自Neal Ford在Groovy中的Functional Thinking演示.参见幻灯片#43和44 https://sea.ucar.edu/sites/default/files/Functional_Thinking.pdf

  def makeCounter : Unit = {
var localVar = 0
return { localVar += 1 }
}
Run Code Online (Sandbox Code Playgroud)

此代码返回匿名函数.现在我想通过调用这个匿名函数来增加localVar.

我有两个问题:
1.如何调用匿名函数?
2.调用后,如何检查localVar的值是否增加?

首先我尝试了这个 -
val c1 = makeCounter().它抛出以下错误:
错误:Unit类型的makeCounter不带参数

然后我尝试了这个.
val c1 = makeCounter

这没有给出任何错误.仅打印c1:单位=().

然后,
打印(c1)打印(),而c1()给出相同的错误.

functional-programming scala anonymous-function

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

对功能语言感到困惑

我已经用面向对象的语言开发了10多年了(C#和java).但是越来越多的人听到很多人在谈论函数式编程语言:Ruby,Scala,Haskell,......

虽然我已经阅读了很多关于这些编程语言的知识.不幸的是,大多数教程大部分时间都在谈论语法.但我没有找到任何解释这些领域或任何提供这些语言的典型实际应用的语言的教程.

我遇到了很多问题,下面是我脑海中简单问题的简短列表.

它们是独立语言吗?

  • 是否可以在其他编程语言中使用函数式语言.与Java/C#一样使用其他语言,如SQL,Regex,HQL,XQL,......?
  • 如果单独使用,它们是否使用编译器?

他们的框架有多强大?

  • 是否支持窗口或对话框等图形组件?
  • 是否支持多线程?
  • 是否支持套接字交互,webservices?

简介:有人可以快速回答我提到的问题,或者甚至更好,您能否通过实际示例为我提供一些教程链接?

先感谢您.

编辑:简化/删除了一些问题

ruby haskell functional-programming scala

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

R中有"功能性if"吗?

基本上我正在寻找相当于

for (i in 1:nrow(mydata)) {
    if(mydata$alive[i]) { mydata$result[i] = mydata$alive_value; }
    else { mydata$result[i] = mydata$dead_value; }
}
Run Code Online (Sandbox Code Playgroud)

这将是符合的

mydata$result <- func_if(mydata$alive,mydata$alive_value,mydata$dead_value)
Run Code Online (Sandbox Code Playgroud)

这样的事情存在吗?

functional-programming r ternary-operator

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

使用递归类型在Haskell中编码动态类型的lambda演算

我正在阅读皮尔斯的类型和编程语言一书,在关于递归类型的章节中,他提到它们可以用于用类型语言编码动态lambda演算.作为练习,我正在尝试在Haskell中编写该编码,但我无法通过typechecker:

{-# LANGUAGE RankNTypes, ScopedTypeVariables #-}

data D = D (forall x . x -> x )

lam :: (D -> D) -> D
--lam f = D f
lam = undefined

ap :: D -> D -> D
ap (D f) x = f x

--Some examples:
myConst :: D
myConst = lam (\x -> lam (\y -> x))

flippedAp :: D
flippedAp = lam (\x -> lam (\f -> ap f x))
Run Code Online (Sandbox Code Playgroud)

现在,这段代码给了我以下错误信息(我真的不明白):

dyn.hs:6:11:
    Couldn't match type `x' …
Run Code Online (Sandbox Code Playgroud)

haskell types functional-programming lambda-calculus

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