我在Haskell中实现FP(Backus)解释器时遇到问题.
FP函数看起来像这样:
[+,*]:<2,3>
Run Code Online (Sandbox Code Playgroud)
应该结果
<+:<2,3>, *:<2,3>> ->
<5,6>
Run Code Online (Sandbox Code Playgroud)
这意味着左侧列表中的每个函数都应该在右侧列表的每个元素上执行.
我的理解是我需要类似于"map"函数的东西,但是map在列表中应用了一个函数,我需要一个值列表中的函数列表.
先感谢您!:-)
编辑:
由于我不准确,这是我的代码不起作用:
apply :: [String] -> [Integer] -> [Integer]
apply fs v = [((apply_f f x) | f <- fs | x <- v)]
apply_f :: String -> [Integer] -> [Integer]
apply_f "+" v = [(sum v)]
apply_f "*" v = [(product v)]
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚为什么...... :-(
编辑2:
对不起,我太累了,不能整天工作.问题是我不需要第二个管道,只需要第一个:
apply fs v = [ apply_f f v | f <- fs ]
Run Code Online (Sandbox Code Playgroud)
现在,一切正常,非常感谢!:-)
我在使用Symfony2中的表单构建器时遇到了麻烦.确切地说,我需要输入字段是html数组,但我无法使用createFormBuilder-> add创建它.这是我尝试过的:
$attributesForm = $this->createFormBuilder()
->add('attribute[0]', 'text') ...
Run Code Online (Sandbox Code Playgroud)
依此类推,但我得到以下异常:
名称"attribute [0]"包含非法字符.名称应以字母,>数字或下划线开头,并且只包含字母,数字,数字,下划线("_"),连字符>(" - ")和冒号(":").
有没有好的解决方案,或者我必须手动创建字段?
提前致谢!
编辑:进一步澄清这一点......我希望生成这样的东西:
<div id="msoft_adminbundle_offertype">
<div>Name <input type="text" name="name"></div>
<div>...</div>
<div>Attribute 0 <input type="text" name="attribute[0]"></div>
<div>Attribute 1 <input type="text" name="attribute[1]"></div>
<div>Attribute 3 <input type="text" name="attribute[3]"></div>
<ul>
</ul>
<p>
<button type="submit">Edit</button>
</p>
Run Code Online (Sandbox Code Playgroud)
救命?