嗨,大家好
我无法找到任何好的文档或如何使用Yesod将邮件发送到电子邮件地址的示例.
更实际的是,我将提取用户在简单表单(姓名,年龄,邮件正文)中键入的信息,并将此信息作为邮件发送到电子邮件地址.
我有点迷失在这个任务中.
谢谢您的帮助.
我正在使用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)
但我无法弄清楚如何从提供的界面中使用它.任何帮助将非常感激.如果我以正确的方式创建有向加权图,或者是否还有其他(更好)的包,我还想听听其他任何建议吗?
我想从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错误而崩溃.
我究竟做错了什么?
我正在尝试使用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.tab为edu/stanford/nlp/models/kbp/english/regexner_caseless.tab(注意english子路径)。
如何使Stanford CoreNLP使用正确的路径?
我做了一个简单的例子来尝试将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) 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都应该有不同的实现.
谢谢您的帮助.
在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 ×5
algorithm ×1
apache-spark ×1
email ×1
graph ×1
oop ×1
profiling ×1
scala ×1
scalaz ×1
stanford-nlp ×1
xml-parsing ×1
yesod ×1