擅长:python、mysql、java
<p><a href="https://repl.it/FFPu/0" rel="nofollow noreferrer">repl.it example</a></p>
<p>功能方法更简洁,更有意义。在</p>
<p>{我们可以从最简单的形式开始表达概念。在</p>
<p>剥离<code>$$otherthing</code>并拆分值:</p>
<pre><code>parse_secret = lambda code: code.split('$$')[0].split('-')
</code></pre>
<p>取一个内部值:</p>
^{pr2}$
<p>将其中一个值替换为其内部值:</p>
<pre><code>parse_code = lambda values, p, q: \
[take(v, q) if p == i else v for (i, v) in enumerate(values)]
</code></pre>
<p>这两种代码有3种不同:</p>
<ul>
<li>值的数目</li>
<li>解析“内部”值的位置</li>
<li>“内部”值的位置</li>
</ul>
<p>我们可以通过描述这些差异来构造解析函数。拆分值被打包,以便更容易组合。在</p>
<pre><code>compose = lambda length, p, q: \
lambda code: parse_code(parse_secret(code)[:length], p, q)
parse_code_1 = compose(3, 0, 0)
parse_code_2 = compose(2, 1, 1)
</code></pre>
<p>并使用组合函数:</p>
<pre><code>secret_code_1 = 'asdf|qwer-sdfg-wert$$otherthing'
secret_code_2 = 'qwersdfg-qw|er$$otherthing'
results = [parse_code_1(secret_code_1), parse_code_2(secret_code_2)]
print(results)
</code></pre>