gpt4 book ai didi

Haskell入门问题...请向我解释

转载 作者:行者123 更新时间:2023-12-04 16:19:29 25 4
gpt4 key购买 nike

我应该写一些haskell程序,但我真的不知道从哪里开始。如果您能指出一些资源来阅读或解释我的问题,我将非常感激。我确信这完全是业余的,但我真的需要一个起点。

data DFA q o                =  DFA (q -> o -> q) q [q]
data NFA q o = NFA (q -> o -> [q]) [q] [q]
-- I really realy don't understand the declarations here
-- I can guess that q is somewhat related to Q and o to E, but don't get what it really means

data Q = Q0 | Q1 | Q2
deriving (Eq, Enum, Bounded)

data E = A | B


-- what does n1 do ??
n1 :: NFA Q E
n1 = NFA d [Q0] [Q2] -- i see [Q0] refers to set of initial states and [Q2] refers to final states :)
where
d Q0 A = [Q0]
d Q0 B = [Q0, Q1]
d Q1 _ = [Q2]
d Q2 _ = []


-- the following functions are for me to write
starDFA :: Eq q => DFA q o -> [o] -> Bool
--for the above function, what are the arguments the function takes in ?
--how can we relate q with Q and [o] with [E] ??

任何对正确起点的解释或引用都会对我很有帮助。
很抱歉问了这么愚蠢的问题,但我真的不知道从哪里开始:)

谢谢

最佳答案

Learn You a Haskell for Great Good!可能是目前最好的 Haskell 教程。我建议通读整篇文章,但如果你赶时间,我会指出一些与本作业更相关的部分。

您获得的代码中的主要部分是 data声明,因此,一旦您熟悉了基础知识(chapter 2first section of chapter 3),那么 Algebraic data types intro 就是一个深入了解的好地方。 , Type variablesType parameters .

以上对于破译数据声明和理解q之间的关系应该足够了。对比 Qo对比 E .

现在要实现实际功能,您需要熟悉deterministic finite automata工作,然后知道足够的 Haskell 来编写实际的实现。 Chapter 4chapter 5是本教程中与此最相关的章节,您还可以找到 section on standard library list functions有用。

一旦你到达这一点,如果你被实现所困,你可以用你迄今为止编写的代码发布另一个问题。

关于Haskell入门问题...请向我解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14977806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com