- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在尝试了解如何使用 lambda 时,我看到了一个回复,发帖者在回复中说,使用 lambda 不能做的事用普通函数做不到。
我一直在努力尝试在 Python 中从自身内部调用一个函数,虽然我不是专家,但我正在学习,我遇到了一些需要使用递归函数的问题,调用多次以获得某个回答。
有人使用 lambda 函数来做到这一点,我试图理解它但我失败了,所以我认为如果可以使用普通函数实现这些函数,那么从那时起开始理解 lambda 会更容易。
我们以这句话为例:
print"\n".join(" ".join([(lambda f:(lambda x:f(lambda*r:x(x)(*r)))(lambda x:f(lambda*r:x(x)(*r))))(lambda f:lambda q,n:len(q)<=n and q or f(q[len(q)/2:],n)+f(q[:len(q)/2],n))(k,z+1)for z,k in enumerate(i[:-1].split())]) for i in list(s)[1:])
这个已经在Facebook hacker cup中使用过,我在循环中迷路了,无法解决这个问题。
这句话需要几个词,比方说“Stackoverflow rocks and it is great”
Facebook 中的问题陈述是:
您已经截获了一系列使用有趣而愚蠢的方法加密的传输,您已经设法破译了这些传输。消息仅包含空格和小写英文字符,并按如下方式加密:对于句子中的所有单词,第 i 个单词(从 1 开始)替换为通过应用以下递归操作 f(word, i) 生成的单词:
如果word的长度小于等于i,回话。否则,返回 f(right half of word, i) +f(单词的左半部分,i).
如果单词的长度为奇数,则将其拆分为右侧较长。您已决定与发送消息的人玩得开心,并以与他们使用的相同的方式加密广播您自己的消息。
输入您的输入将以整数 N 开头,然后是换行符,然后是 N 个测试用例。每个案例由一个未加密的句子组成,只包含空格和小写字母,案例以换行符分隔。句子中不会有前导或尾随空格,任何其他相邻字符之间最多有 1 个空格字符
输出对于每种情况,以换行符分隔,输出应用上述编码方法后的加密句子的内容。您可以忽略传统的大写规则并坚持使用所有小写字母。
约束条件5≤N≤25句子将包含不超过 100 个字符。
最佳答案
Python lambda 只是语法糖。 “常规”函数具有相同的功能,例如闭包,因为请记住,您可以在另一个函数中定义它们,就像 lambda 一样。
def some_func():
some_expr_using(lambda args: 42)
# becomes:
def some_func():
def unique_name(args):
return 42
some_expr_using(unique_name)
除了在检查 lambda 对象时,它的名称设置为“
你的代码可以写成:
def y(f):
def a(x):
def b(*r):
return x(x)(*r)
return f(b)
return a(a)
def fx(f):
def x(q, n):
# changed "a and b or c": different semantics if b can be falsy
if len(q) <= n:
return q
else:
return f(q[len(q) / 2:], n) + f(q[:len(q) / 2], n)
return x
print "\n".join(
" ".join(y(fx)(k, z + 1) for z, k in enumerate(i[:-1].split()))
for i in list(s)[1:])
(但前提是我翻译正确;仔细检查。:P)
此代码是 fixed-point combinator 的示例,我只是勉强理解,并且在不了解更多上下文的情况下很难给出更好的名字(我没有尝试破译实际的问题陈述)。它可以分解为一个递归函数,该函数直接通过名称调用自身。
关于python - 将 lambda 转换为 Python 中的普通函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4777235/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 5 年前。
DBMS 供应商使用 SQL 方言特性来区分他们的产品,同时声称支持 SQL 标准。 'Nuff 说。 您编写的任何 SQL 示例是否无法转换为 SQL:2008 标准 SQL? 具体来说,我说的是
多年来,我一直在考虑这个问题,但从未成功实现过。我说的是一个快速、高效的 C 函数,它在输入中接受一个整数值(例如 16 位),并在输出中给出完全不同的相同位大小的数字,但“考虑到”所有数字已经给出了
当标准 iPhone UI 控件变得过于平淡,并且您希望简单的记分应用程序通过颜色、动画、非标准 GUI 字体和背景壁纸等流行时。 ,为这样的事情集成游戏引擎有意义吗? 我对 Unity3D 和 To
这是我的第一个问题,所以如果我没有正确地标记标签,我很抱歉。我尝试过...这是我的问题:我希望有人能告诉我如何为普通的表格 View 创建 2 行节标题。我遇到的问题是:1)我找不到可以模仿默认 1
所以我一直在开发一个仅使用普通 JavaScript 的“非常简单”的计算器。但我不知道为什么它现在起作用了。 这是我的 JavaScript 和 HTML 代码: (function() { "
我正在尝试编写一个函数来满足以下要求: 给定一个对象和一个键,“getElementsThatEqual10AtProperty”返回一个数组,其中包含位于给定键处等于 10 的数组的所有元素。 注释
[最终编辑:我觉得有必要做出回应,因为我从这篇文章中学到了很多东西(主要是通过你们,我花了更多的时间来理解CSS..但最后,我真的不知道如何为了使这项工作有效..除了真正破坏html的基本结构..我不
我希望能够将一个函数附加到一个元素上,该函数只有在该元素上单击指定时间后才会运行。 有几个( 1 、 2 、 3 )与在 javascript 中处理鼠标保持相关的问题;但这些问题要么使用 jQuer
我想将泛型函数保存为变量: (defvar *gf* (make-instance 'standard-generic-function) 但是在添加方法时,我必须自己定义call-next-meth
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
我有一个普通的 tableView——一个部分——当我滚动时,行出现在标题后面。像这样: 有没有简单的方法来防止这种情况?我认为它与 contentInset 有关,但这也会移动标题,这不是我想要的。
你好,我有一个ajax表单,它返回一个控制“发送”动画的脚本。然而,当淡入开始时,它会停止在 0.1 不透明度。我不确定脚本中有什么问题。任何帮助将不胜感激。 quote_form = documen
这是演示我的问题的代码笔:http://codepen.io/PiotrBerebecki/pen/yaWQwZ 目标是当用户点击时有滚动动画 顶部导航链接,以及 Back to Top 按钮在右下角
在我重新发明轮子之前,纯Java中有类似主题的并发队列吗?我有以下要求: 多个读者/消费者 多名作家/制片人 每条消息都必须由每个(活跃的)消费者消费 在每个消费者阅读一条消息后,它应该变成垃圾(即不
这个问题与 Do MySQL tables need an ID? 有一个无意义的auto_incremental ID作为一个表的PRIMARY KEY,那么我创建其他KEY时,我是否应该在KEY中
我有一个普通 UITableView 并且我想隐藏分隔符。为了隐藏它,我尝试使用以下属性: 我也在 viewDidLoad 中设置了它。 self.tableView.separatorStyle =
var vettore = document.getElementById(id_form).elements; for (var i = 0; i '+vettore_nomi_file[i]; 最
我已经构建了一个非常简单的轮播,但有一个问题。在我的轮播中,我有三张幻灯片,一个上一个按钮和一个下一个按钮。我想要的是当我单击下一个按钮并在最后一张幻灯片上转到第一张幻灯片时。此外,当我单击上一个按钮
我是 javascript 的新手,所以我需要一些帮助。 我正在尝试制作一个简单的插件(当然只是为了学习,以便更好地理解事物),但我遇到了一些麻烦,我将不胜感激。 我的插件是基本的,我正在尝试为 sc
我是一名优秀的程序员,十分优秀!