小编Kon*_*nos的帖子

使用Yesod将邮件发送到电子邮件地址

嗨,大家好

我无法找到任何好的文档或如何使用Yesod将邮件发送到电子邮件地址的示例.

更实际的是,我将提取用户在简单表单(姓名,年龄,邮件正文)中键入的信息,并将此信息作为邮件发送到电子邮件地址.

我有点迷失在这个任务中.
谢谢您的帮助.

email haskell yesod

12
推荐指数
1
解决办法
1284
查看次数

使用FGL查找最短路径

我正在使用Martin Erwig的功能图库(FGL)来表示以下简单的有向加权图.

图形

genLNodes :: [LNode String]
genLNodes = zip [1..5] ["A","B","C","D","E"]

genLEdges :: [LEdge Int]
genLEdges = [(1,2,4),(1,3,1),(2,4,2),(3,4,2),(2,5,1),(4,5,1),
             (2,1,4),(3,1,1),(4,2,2),(4,3,2),(5,2,1),(5,4,1)]

mygraph :: Gr String Int
mygraph = mkGraph genLNodes genLEdges
Run Code Online (Sandbox Code Playgroud)

现在我想找到一个节点到另一个节点如最短路径A,以E使用Dijkstra算法.似乎有一个功能可以做到Data.Graph.Inductive.Query.SP:

dijkstra :: (Graph gr, Real b) => Heap b (LPath b) -> gr a b -> LRTree b
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何从提供的界面中使用它.任何帮助将非常感激.如果我以正确的方式创建有向加权图,或者是否还有其他(更好)的包,我还想听听其他任何建议吗?

algorithm haskell graph shortest-path

9
推荐指数
1
解决办法
943
查看次数

如何用有限的资源解析Haskell中的大型XML文件?

我想从Haskell中的大型XML文件(大约20G)中提取信息.由于它是一个大文件,我使用了Hexpath的 SAX解析函数.

这是我测试的一个简单代码:

import qualified Data.ByteString.Lazy as L
import Text.XML.Expat.SAX as Sax

parse :: FilePath -> IO ()
parse path = do
    inputText <- L.readFile path
    let saxEvents = Sax.parse defaultParseOptions inputText :: [SAXEvent Text Text]
    let txt = foldl' processEvent "" saxEvents
    putStrLn txt
Run Code Online (Sandbox Code Playgroud)

在Cabal中激活分析后,它表示parse.saxEvents占用了85%的已分配内存.我也用过foldr,结果是一样的.

如果processEvent变得足够复杂,程序会因stack space overflow错误而崩溃.

我究竟做错了什么?

profiling haskell xml-parsing

5
推荐指数
1
解决办法
589
查看次数

使用NER注释文本:异常:无法读取TokensRegexNER

我正在尝试使用Java中的Stanford CoreNLP v3.9.1注释文本。使用的注释器是:标记化,分割,pos,引理,ner

我已经从https://stanfordnlp.github.io/CoreNLP/download.html包含了模型jar 。这两个英语模型都包含在我的项目中(正常+ kbp)。

但是,加载english.muc.7class.distsim.crf.ser.gz分类器后,将引发以下异常:Couldn't read TokensRegexNER from edu/stanford/nlp/models/kbp/regexner_caseless.tab

打开下载jar模型后stanford-english-kbp-corenlp-2018-02-27-models.jar,正确的路径regexner_caseless.tabedu/stanford/nlp/models/kbp/english/regexner_caseless.tab(注意english子路径)。

如何使Stanford CoreNLP使用正确的路径?

stanford-nlp

4
推荐指数
1
解决办法
1033
查看次数

将 Scalaz 与 Spark 一起使用时出现不可序列化的异常

我做了一个简单的例子来尝试将scalaz 库代码与 Apache Spark 1.5集成。

这是一个简单的 Spark 程序来说明我的问题:

package test

import org.apache.spark.{ SparkConf, SparkContext }
import org.apache.spark.rdd.RDD

import ca.crim.deti.re.spark.sparkConf
import scalaz._
import scalaz.Scalaz._

object TestSpark {

  def main(args: Array[String]) = {
    val conf = new SparkConf().setAppName("Test").setMaster("local")
    val SC = new SparkContext(conf)
    val c = SC.parallelize(List(1, 2, 3, 4, 5))

    println(func1(c).count) // WORKS
    println(func2(c).count) // DOES NOT WORK.. NotSerializableException
  }

  // WORKS!
  def func1(rdd: RDD[Int]) = {
    rdd.filter { i => f(i, i) }
  }
  // DOES NOT WORK! …
Run Code Online (Sandbox Code Playgroud)

scala scalaz apache-spark

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

在Haskell中表示的OO类

H!

假设我有一个抽象类机器人,有几个属性,如'position'和'weight'.这个抽象类实现了三个方法:'take','drop'和'move',但也有一个抽象方法'makeAction'.然后我有两个名为'TRobot'和'FRobot'的子机器人.基本上,TRobot和FRobot将实现'makeAction'方法,但不会重新实现'take','drop'和'move'.

我的问题是你如何在Haskell中做到这一点.

我从数据类型开始:

data Robot = Robot {position :: Char, weight :: Int}
Run Code Online (Sandbox Code Playgroud)


编辑:

但我想函数'take','move'和'drop'(take :: Box - > Robot - > Robot)如果Robot是TRobot或FRobot则表现相同.

但是,功能

makeAction :: Robot -> Action
Run Code Online (Sandbox Code Playgroud)

无论Robot是TRobot还是FRobot都应该有不同的实现.

谢谢您的帮助.

oop haskell

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

精度损失'sqrt'Haskell

在ghci终端中,我使用sqrt函数计算了一些使用Haskell的方程式.

我注意到sqrt,当我的结果被简化时,我有时会失去精确度.

例如,

sqrt 4 * sqrt 4 = 4 -- This works well!
sqrt 2 * sqrt 2 = 2.0000000000000004 -- Not the exact result.
Run Code Online (Sandbox Code Playgroud)

通常情况下,我会期待结果2.

有没有办法获得正确的简化结果?
这在Haskell中如何工作?

haskell

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