小编Fop*_*tin的帖子

优化haskell代码

我编写了下面的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%的执行时间.

如何重新编写代码以提高效率?

optimization haskell

3
推荐指数
2
解决办法
720
查看次数

Haskell:当输入String为空时如何停止Data.Attoparsec.Char8.sepBy?

我写了以下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)

我怎么能纠正这个?

谢谢你的回复

parsing haskell attoparsec

3
推荐指数
1
解决办法
916
查看次数

如何调试我的C gstreamer代码?

我成功地计划和执行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)

但没有成功

谢谢你的回复!

c debugging gstreamer

3
推荐指数
1
解决办法
1889
查看次数

将变量设置为'undefined'实际上是否释放了空间?

我正在寻找一种明确的方法来确保JavaScript垃圾收集器很快就能完成它的工作.

那么设置变量undefined是一种保证吗?

var foo = "something";
// do stuff with foo

foo = undefined;
// awake the Garbage Collector interest to him
Run Code Online (Sandbox Code Playgroud)

javascript node.js

3
推荐指数
1
解决办法
171
查看次数

如何在R中绘制这样的图形?

我在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秒

如何在这样的图表中重新呈现这些信息 在此输入图像描述

plot r graph

2
推荐指数
1
解决办法
610
查看次数

如何在OWL中定义属性的域?

我想构建一个本体来处理感染或未感染疾病的人:

<?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相关的一些Diseasehas_disease将被推断有型SickPerson,也?

rdf owl ontology rdfs

2
推荐指数
1
解决办法
301
查看次数

如何修改我的R代码来绘制这种甘特图?

每个人

使用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)

绘制这样一个甘特图

在此输入图像描述

非常感谢,任何回复!

plot r gantt-chart

2
推荐指数
1
解决办法
2607
查看次数

如何计算Zend Framework 2中的行数

我需要计算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

php zend-framework2

2
推荐指数
2
解决办法
1万
查看次数

如何访问hmatrix中的元素?

我开始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)

haskell matrix

2
推荐指数
1
解决办法
789
查看次数

E: 无法定位包 gradle

我正在尝试运行 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)

请指导我如何解决问题

filesystems ubuntu fuse gradle

2
推荐指数
1
解决办法
4886
查看次数