我有以下函数,它接受一个列表并返回在给定元素n处拆分的两个子列表.但是,我只需要将它分成两半,奇数长度列表具有更大的第一个子列表
splitlist :: [a] -> Int -> ([a],[a])
splitlist [] = ([],[])
splitlist l@(x : xs) n | n > 0 = (x : ys, zs)
| otherwise = (l, [])
where (ys,zs) = splitlist xs (n - 1)
Run Code Online (Sandbox Code Playgroud)
我知道我需要将签名更改为[a] - >([a],[a]),但是在代码中我应该放置像length(xs)这样的东西,这样我就不会破坏递归?谢谢.
我正在尝试将Wiki标记转换为HTML标记,即
[[Image:wiki.png]]
[[Image:wiki.png|Wikipedia, The Free Encyclopedia.]]
Run Code Online (Sandbox Code Playgroud)
至
<img src="wiki.png" alt=""/>
<img src="wiki.png" alt="Wikipedia, The Free Encyclopedia."/>
Run Code Online (Sandbox Code Playgroud)
使用一行Perl
s/\[\[Image:(\w+?\.png)\|{0,1}(.*?)\]\]/g;
print;
Run Code Online (Sandbox Code Playgroud)
但是Perl不断抛出错误
替换替换未终止
它适用于此RegExr测试,更改分隔符并未解决问题.任何见解都会非常感激.
使用eclipse运行配置运行时程序运行正常,但是当使用ant运行时,它无法从args [0]解析int,这是我不明白的.完整的代码可以在这里https://gist.github.com/4108950/e984a581d5e9de889eaf0c8faf0e57752e825a97 我相信它与蚂蚁有关,
target name="run" description="run the project">
java dir="${build.dir}" classname="BinarySearchTree" fork="yes">
<arg value="6 in.txt"/>
/java>
/target>
Run Code Online (Sandbox Code Playgroud)
arg值将通过-D标志更改,如在-Dargs ="6 testData1.txt"中运行.
任何帮助将非常感激,这是非常令人沮丧的.