我编写了下面的Haskell代码,它采用三元组(x,y,z)和三元组列表[(Int,Int,Int)]并查看列表中是否存在三元组(a,b,c) x == a和y == b如果是这种情况我只需要更新c = c + z,如果列表中没有这样的三元组,我只需在列表中添加三元组.
-- insertEdge :: (Int,Int,Int) -> [(Int, Int, Int)] -> [(Int, Int, Int)]
insertEdge (x,y,z) cs =
if (length [(a,b,c) | (a,b,c) <- cs, a /= x || b /= y]) == (length cs)
then ((x,y,z):cs))
else [if (a == x && b == y) then (a,b,c+1) else (a,b,c) | (a,b,c) <- cs]
Run Code Online (Sandbox Code Playgroud)
在对我的代码进行分析后,看起来这个功能占用了65%的执行时间.
如何重新编写代码以提高效率?
我写了以下Haskell代码
import Data.Attoparsec (Parser)
import qualified Data.Attoparsec.Char8 as A
import qualified Data.ByteString.Char8 as B
someWithSep sep p = A.sepBy p sep
Run Code Online (Sandbox Code Playgroud)
代码假设以这种方式工作:
main*> A.parse (someWithSep A.skipSpace A.decimal) $ B.pack "123 45 67 89"
Done "" [123,45,67,89]
Run Code Online (Sandbox Code Playgroud)
但是因为我已经在上面编写的代码中定义了someWithSep,所以我总是得到以下行为:
main*> A.parse (someWithSep A.skipSpace A.decimal) $ B.pack "123 45 67 89"
Partial _
Run Code Online (Sandbox Code Playgroud)
除非我提供了损坏的条目:
main*> A.parse (someWithSep A.skipSpace A.decimal) $ B.pack "123 45 67 89f"
Done "f" [123,45,67,89]
Run Code Online (Sandbox Code Playgroud)
我怎么能纠正这个?
谢谢你的回复
我成功地计划和执行helloworld.c的应用程序开发手册第43页.它工作得很好.
编译是使用此命令行完成的
gcc -Wall helloworld.c -o helloworld $(pkg-con?g --c?ags --libs gstreamer-1.0)
Run Code Online (Sandbox Code Playgroud)
我正在使用我的默认gstreamer ubuntu 12.0.4.
我担心调试我的程序,我知道这可以使用命令行选项来实现GST_DEBUG.以下是qtdemux在csv文件中生成调试报告的示例.
GST_DEBUG=qtdemux:5 gst-launch filesrc location=/home/pub_Irma.mp4 ! qtdemux name=demuxer demuxer. ! queue ! faad ! audioconvert ! audioresample ! autoaudiosink demuxer. ! queue ! ffdec_h264 ! ffmpegcolorspace ! autovideosink 2> > (tee /media/thesis/log_pub.csv)
Run Code Online (Sandbox Code Playgroud)
但由于我没有使用gst-launch,我想知道如何以编程方式做同样的事情?手动代码中缺少什么来生成调试报告?或者在编译或/和执行程序时是否设置了特殊参数?
我试过这种方式编译
gcc $2 -o $3 -Wall `pkg-config --cflags --libs gstreamer-0.10 --enable-gst-debug`
Run Code Online (Sandbox Code Playgroud)
但没有成功
谢谢你的回复!
我正在寻找一种明确的方法来确保JavaScript垃圾收集器很快就能完成它的工作.
那么设置变量undefined是一种保证吗?
var foo = "something";
// do stuff with foo
foo = undefined;
// awake the Garbage Collector interest to him
Run Code Online (Sandbox Code Playgroud) 我在csv文件中的数据具有以下格式:
start;duration
1;4
7;3
15;2
Run Code Online (Sandbox Code Playgroud)
这意味着我们有3个任务,第一个从1开始,需要4秒(所以它以5结束),第二个开始7并且需要3秒(soo结束于10),最后一个从15开始并需要2秒
如何在这样的图表中重新呈现这些信息

我想构建一个本体来处理感染或未感染疾病的人:
<?xml version="1.0"?>
</rdf:RDF>
<owl:Class rdf:about="&person;Disease"/>
<owl:Class rdf:about="&person;HealthyPerson">
<rdfs:subClassOf rdf:resource="&person;Person"/>
<owl:disjointWith rdf:resource="&person;SickPerson"/>
</owl:Class>
<owl:Class rdf:about="&person;Person"/>
<owl:Class rdf:about="&person;SickPerson">
<rdfs:subClassOf rdf:resource="&person;Person"/>
</owl:Class>
</rdf:RDF>
Run Code Online (Sandbox Code Playgroud)
图形:

我怎样才能定义属性has_disease(人,病)以这样的方式该类型的个人Person相关的一些Disease由has_disease将被推断有型SickPerson,也?
每个人
使用R中的以下代码,我显示了一个简单的甘特图:
dat <- read.csv2(text="start;duration
1;4
7;3
15;2
")
plot(NA, xlim=c(0,20), ylim=c(0,9), ylab="",xlab="X", xaxt="n", yaxt="n")
with(dat, segments(x0=start, x1=start+duration, y0=2,y1=2))
with(dat, text( start+duration/2, 2.5, labels=duration))
axis(1, at=seq(0,20,by=2), labels=seq(0,20,by=2))
Run Code Online (Sandbox Code Playgroud)

现在我如何修改此代码以便能够从csv文件中的这些数据:
A; 2; 7;
B; 5; 10;
C; 5; 12;
D; 16; 22;
E; 18; 20;
Run Code Online (Sandbox Code Playgroud)
绘制这样一个甘特图

非常感谢,任何回复!
我需要计算MySql查询的结果行.这里我把TableGateway课程扩展到我的班级这是我的代码.
public function get_num_of_rows(){
$sql = 'SELECT count(q_no) FROM questions';
//code ????????????????
$result = $this->select();
return $result;
}
Run Code Online (Sandbox Code Playgroud)
那我怎么执行SELECT count(q_no) FROM questions?
我开始hmatrix在Haskell中进行矩阵操作.我发现创建矩阵非常容易:
ghci> let m = (10><10) [1..]
ghci> m
(10><10)
[ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0
, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0
, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0
, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0
, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0, 49.0, 50.0
, 51.0, 52.0, 53.0, 54.0, 55.0, 56.0, 57.0, 58.0, 59.0, 60.0
, 61.0, …Run Code Online (Sandbox Code Playgroud) 我正在尝试运行 fuse-jna ( https://github.com/EtiennePerot/fuse-jna ) 的示例文件系统。但它要求我安装 gradle
syed@ubuntu:~/Downloads/fuse-jna-master/examples$ ./hellofs.sh ~/hellofs
gradle not found in $PATH. Please install gradle.
Run Code Online (Sandbox Code Playgroud)
我有 ubuntu 12,我尝试通过安装 Gradle,sudo apt-get install gradle但出现错误
E: Unable to locate package gradle
syed@ubuntu:~/Downloads/fuse-jna-master/examples$ sudo apt-get install gradle
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package gradle
Run Code Online (Sandbox Code Playgroud)
请指导我如何解决问题
haskell ×3
plot ×2
r ×2
attoparsec ×1
c ×1
debugging ×1
filesystems ×1
fuse ×1
gantt-chart ×1
gradle ×1
graph ×1
gstreamer ×1
javascript ×1
matrix ×1
node.js ×1
ontology ×1
optimization ×1
owl ×1
parsing ×1
php ×1
rdf ×1
rdfs ×1
ubuntu ×1