大约6年前,我在OCaml中对自己的解析器组合器进行了基准测试,结果发现它们比当时提供的解析器生成器慢〜5倍.我最近重新审视了这个主题,并对Haskell的Parsec和一个用F#编写的简单的手动优先攀爬解析器进行了基准测试,并惊讶地发现F#比Haskell快25倍.
这是我用来从文件中读取大型数学表达式的Haskell代码,解析并评估它:
import Control.Applicative
import Text.Parsec hiding ((<|>))
expr = chainl1 term ((+) <$ char '+' <|> (-) <$ char '-')
term = chainl1 fact ((*) <$ char '*' <|> div <$ char '/')
fact = read <$> many1 digit <|> char '(' *> expr <* char ')'
eval :: String -> Int
eval = either (error . show) id . parse expr "" . filter (/= ' ')
main :: IO ()
main = do
file <- …Run Code Online (Sandbox Code Playgroud) 我想为我的项目中的所有.m文件生成可本地化的字符串.然而,它们并非都被转储到Class文件夹中,它们位于多个目录中(其中很多都是).
使用genstrings命令解析整个树并生成字符串以进行本地化的最佳方法是什么?
这个问题基于我上一个问题的相同应用程序/来源,可以在这里找到:
我有一个嵌套的数组,打印出来时看起来像这样(我只复制并粘贴了它的一小部分).
(
(
<Term: 0x4256420>,
<Term: 0x420fa40>,
<Term: 0x4257bd0>,
<Term: 0x4257cf0>,
<Term: 0x4257d90>,
<Term: 0x4257e30>
),
(
<Term: 0x4257e50>,
<Term: 0x4257f90>,
<Term: 0x4257fb0>,
<Term: 0x42580e0>,
<Term: 0x4258170>,
<Term: 0x4258210>,
<Term: 0x4258230>,
<Term: 0x4258360>,
<Term: 0x4258400>,
<Term: 0x42584a0>,
<Term: 0x4258540>,
<Term: 0x42585e0>,
<Term: 0x4258670>,
<Term: 0x4258710>
),
Run Code Online (Sandbox Code Playgroud)
这是我的表的搜索部分的代码:
- (NSInteger)tableView:(UITableView *)aTableView numberOfRowsInSection:(NSInteger)section
{
// Normal table
if (aTableView == self.tableView) return [[self.sectionArray objectAtIndex:section] count];
// Search table
//NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name contains[cd] %@", self.searchBar.text];
//self.filteredArray = [self.crayonColors filteredArrayUsingPredicate:predicate]; …Run Code Online (Sandbox Code Playgroud) iphone memory-management objective-c multidimensional-array nspredicate
我想在向我的论坛发表评论时即时进行“登录或注册”。我正在使用 Devise/Warden。
我想做这样的事情:
user = warden.authenticate!(params[:email], params[:password])
sign_in(:user, user)
Run Code Online (Sandbox Code Playgroud)
谁能给我一些关于如何做到这一点的提示?
谢谢!
如果我只知道列表中任何元组的1个元素,我该如何搜索元组列表?
模型示例(这不起作用):
tuplelist = [('cat', 'dog'), ('hello', 'goodbye'), ('pretty', 'ugly')]
matchlist = []
searchstring = 'goodbye'
if (*, searchstring) in tuplelist:
print "match was found"
matchlist.append(tuplelist[#index of match])
Run Code Online (Sandbox Code Playgroud)
asterix将是我想放置通配符的地方
我知道我可以使用:
for i in range (len(tuplelist)):
if tuplelist[i][1]==searchstring:
matchlist.append(tuplelist[i])
print "match was found"
Run Code Online (Sandbox Code Playgroud)
但问题是如果找不到匹配项,我只需要运行一次特定的函数.
也许我可以制作一个在找到匹配时递增的计数器,并将这样的东西添加到循环中.
if i==len(tuplelist) and matchcounter==0:
#do something
print "no match was found"
Run Code Online (Sandbox Code Playgroud)
但是我认为那种丑陋和混乱,我确信有一些更清洁的方法可以做到这一点:P
我正在设计我的网站,我正试图找到一种方法来始终在屏幕上保持标题.
例如,请查看Wikia.com 上的这个超长页面.请注意,当您滚动页面时,底部的小工具栏会保留在一个位置.但是,滚动到页面底部,您将意识到工具栏保持固定位置,直到它离开视图.
这就是我想做的事情,但反之亦然.有一个标题保持在网页上的固定位置,但当它不在视图中时将它放在顶部.
我试着在DynamicDrive.com上查看一个例子(搜索Dock内容脚本,因为我不能发布另一个链接),但我发现它对我来说太麻烦了.
有人可以帮我这样做吗?
提前致谢.
〜DragonXDoom
PS现在,我注意到,提交问题页面右侧的"如何格式化"框具有此效果.
我有一个电影数据库,我需要填充数据,以便更容易测试和开发应用程序.有用于保存电影评级和用户帐户的表格,用户评价电影.
我已经开始开发一个脚本,用虚假和通用数据填充数据库,但我不知道如何随机化评级.对于每部电影,我选择随机数量的用户,100,500,1000,等等.并且对于每个用户,我将评级从1到10随机化.但是这些评级导致相同的平均值,大约为5.这意味着特定电影的评级(1到10)的分布基本相同.这根本不是"现实的",因为所有具有这样生成的评级的电影都具有相同的平均值,因此来自不同用户和不同用户数量的相同评级并不重要.
我希望电影A平均为7,电影B平均为5,电影C平均为8等等......但我不希望每部电影的平均值都不同.我的意思是,产生这样的评级(对于特定数量的用户)会很好:http: //www.imdb.com/title/tt1046173/ratings或者这个http://www.imdb.com/title/ tt0486640 /评级
你知道,随机的东西可以产生两种不同的变化,如上所述.我点击刷新,我得到第一个图表,我点击刷新并得到第二个,再次点击并获得不同或类似的东西,"随机"和"现实"的东西.
我也将在我的应用程序上显示这样的图形,所以有不同的发行版会很好看.但我不知道如何通过一个简单的脚本随机完成这一任务来生成所有这些.
我怎么解决这个问题?也许这太多的工作不值得了?
也许更简单的事情,比如选择一个点(1到10之间),然后创建一个正常的评级分布,其中所选择的点是最高点,这对我有用.
我正在制作HTML表单.我希望结果出现在PHP脚本中.
<form action="chk_kw.php" method="post"> <br />
<select> name="website_string"
<option value="" selected="selected"></option>
<option VALUE="abc"> ABC</option>
<option VALUE="def"> def</option>
<option VALUE="hij"> hij/option>
</select>
<input type="submit" name="website_string" >
</form>
Run Code Online (Sandbox Code Playgroud)
问题是我无法将值传递给PHP.如果我使用价值:
<INPUT TYPE="submit" name="website_string" value="selected" >
Run Code Online (Sandbox Code Playgroud)
它总是传递引号中的文本.在这种情况下"selected".如何从选项中传递其中一个字符串?
我需要将float转换为字符串,但是要转换为小数点后六位.如何在不将其转换为带有E表示法的字符串的情况下执行此类任务?
因此,我想在画布上绘制一条线(在3d中),并在鼠标拖动该线(拖动它的一些点)时使其可旋转(在3d中)(更好地使用任何类似专用的lib - 纯粹没有libs JS. ..)?