小编Opt*_*ght的帖子

haskell scala互操作性

我是Scala的初学者,来自面向对象的范式.在理解Scala的函数编程部分时,我被引导到Haskell--纯函数式编程语言.

探索SO问答,我发现Java - Haskell具有互操作性.

我很想知道Scala-Haskell的互操作性是否同样存在?

可以在Scala应用程序中使用用Haskell编写的函数库吗?

根据Don Stewart给出的答案:这是可能的.

在Scala应用程序中集成Haskell函数库将是简单易行还是需要复杂的调整?

使用集成的Haskell函数库,Scala应用程序将在JVM上运行还是需要不同的安排?

haskell scala language-interoperability

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

没有附带的约束 - 这是什么意思?这个怎么运作?

我在LYAH练习.

phoneBook.hs文件包含以下代码:

phoneBook :: [(String,String)]

在尝试编译上述代码时,我收到以下错误:

*Main>:load"/home/optimight/phoneBook.hs"[1/1]编译Main(/home/optimight/phoneBook.hs,解释)

/home/optimight/phoneBook.hs:1:1:`phoneBook'的类型签名缺少附带的绑定失败,模块加载:无.

在对此答案进行回答之后添加了问题以及随后对此答案的评论:我们如何为上述类型签名提供实施?

如果我添加这个:

type phoneBook = [(String,String)]

我收到以下错误:

Prelude>:load"/home/optimight/phoneBook.hs"[1/1]编译Main(/home/optimight/phoneBook.hs,解释)

/home/optimight/phoneBook.hs:2:6:类型或类声明格式错误:phoneBook失败,模块加载:无

haskell haskell-platform

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

为什么我被迫用小写的第一个字母写(数据构造函数)名称?

为什么我被迫写liOfLi代替LiOfLi?请指导.

baby.hs中的代码

LiOfLi = [[1,3,4,5,6,8],[12,13,15,16,19,20],[23,24,25,45,56]]

ghci回复:

ghci>:l baby
[1/1]编译Main(baby.hs,解释)
失败,模块加载:无.

ghci> baby.hs:29:1:不在范围内:数据构造函数`LiOfLi'

将首字母更改为较小的情况时

baby.hs中的代码

liOfLi = [[1,3,4,5,6,8],[12,13,15,16,19,20],[23,24,25,45,56]]

ghci回复:

ghci>:l baby
[1/1]编译Main(baby.hs,解释)
好的,模块加载:Main.

以下是我提到的SO问题,但我没有理解规则/逻辑,并得到(我)上述问题的答案.

为什么Haskell强制数据构造函数的第一个字母是大写?

变量名称必须小写.与此相关的官方文档位于haskell.org/onlinereport/intro.html#namespaces - (SO评论) Chris Kuklewicz

haskell

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

haskell中的完整缩进规则集

从哪里可以获得Haskell代码编写的完整缩进规则集?

过去的SO问题与我的以下问题类似,这使我提出上述问题.什么是错误讯息背后的原因:parse error on input 'something'

我得到的错误信息:

baby.hs:103:2:输入`myList'时解析错误(此行中的错误)

代码我正在尝试编译:

myList = ["aeroplane", "Aeroplane", "AeRoPlAne", "helicopter", "HELICOPTER", "Zebra"]
quicksort :: (Ord a) => [a] -> [a]  
quicksort [] = []  
quicksort (x:xs) =
let smallerSorted = quicksort [a | a <- xs, a <= x]  
biggerSorted = quicksort [a | a <- xs, a > x]  
in smallerSorted ++ [x] ++ biggerSorted
Run Code Online (Sandbox Code Playgroud)

由Optimight编辑:

我将问题中的代码转移到新的.hs文件并尝试编译它.仍然存在类似的错误消息.详情如下:

错误
quickSort.hs:5:62:解析错误输入`='失败,模块加载:无.(0.02秒,0字节)

代码quicksort ::(Ord a)=> [a] - > [a]
quicksort [] = [] quicksort(x:xs)= let …

haskell coding-style

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

haskell应用程序项目文档

什么是文学编程?引用Knuth博士的话:"主要的想法是将一个程序视为与人类的交流,而不是作为计算机的一套指令."

生成haskell应用程序项目文档的常用方法是什么?请提及每种方法的主要强度区域/主要优点.

haskell

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

模棱两可的发生`Just'

我是一个绝对的初学者.使用emacs通过LYAH.

我目前的设置:

  • Ubuntu 12.04 LTS(使用体验 - 初学者)
  • GNU Emacs 23(使用经验 - 初学者)
    • 能够在haskell主要模式下工作

这里描述的第2点找到难以遵循的指令(带来haskell库).

还需要指导才能启用Scion IDE.

问题:

.hs代码

data Maybe a = Nothing | Just a
Run Code Online (Sandbox Code Playgroud)

在运行代码时,我收到以下错误:

请忽略拼写错误,原贴:

*Main> just "Haha"  
Run Code Online (Sandbox Code Playgroud)

互动>:339:1:不在范围内:'只是'

这是真正的错误(在Tikhon Jelvis的评论之后添加):

*Main> Just "Haha"  
interactive>:341:1:  
    Ambiguous occurrence `Just'  
    It could refer to either `Main.Just',    
                             defined at /home/optimight/baby.hs:89:26  
                          or `Prelude.Just',  
                             imported from `Prelude' at /home/optimight/baby.hs:1:1  
                             (and originally defined in `Data.Maybe')  
Run Code Online (Sandbox Code Playgroud)

emacs haskell ghc ghci haskell-platform

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

哪种KeyBoard/KeyBoard布局最适合haskell编程?haskell是否将所有Math符号作为函数?

作为haskell的绝对初学者,我不断阅读有关haskell的各种文章,pdf和教程.大多数示例/示例代码包括数学字符.即使是打字的常见任务

- >

我必须输入: - &>

事实是我不知道如何在emacs中键入数学字符(我用于练习haskell编码).我目前的键盘布局是"英国美国".

是否有任何特定的键盘或键盘布局最适合输入数学符号(用于haskell编程)?

haskell是否将所有Math符号作为函数?我目前的假设是haskell必须支持所有数学符号作为函数.

例如+, - ,/,*等

Unicode Math Symbols 注意:许多haskell论文中都有这些符号.

keyboard unicode emacs haskell symbols

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

如何在emacs中运行haskell应用程序 - haskell模式?

helloworld.hs中的代码:

main = do
putStrLn"你好,你叫什么名字?"
name < - getLine
putStrLn("嘿"++名称++",你摇滚!")

终端应用测试:

optimight @ optimight:〜$ ghc --make helloworld
[1 of 1]编译Main(helloworld.hs,helloworld.o)
链接helloworld ...
optimight @ optimight:〜$ ./helloworld
你好,你叫什么名字?
约翰
嘿约翰,你摇滚!

在emacs中加载helloworld.hs - haskell主要模式:

GHCi,版本7.4.1:http ://www.haskell.org/ghc/:?求助于
加载包ghc-prim ...链接...完成.
加载包integer-gmp ...链接...完成.
加载包基...链接...完成.
Prelude>:load"/home/optimight/helloworld.hs"
[1/1]编译Main(/home/optimight/helloworld.hs,解释)
好的,模块已加载:Main.
*主要>

现在,如何(程序是什么?)在emacs - haskell模式环境中测试它?(我相信,当我使用emacs - haskell模式时,不需要切换到终端.)

emacs haskell haskell-platform haskell-mode

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

haskell枚举 - 如果值构造函数需要值而不是nullary,该怎么办?给出了需求方案

LYAH派生实例中说"所有的值构造函数都是无效的(不带参数,即字段),我们可以将它作为Enum类型类的一部分."

数据日=星期一| 星期二| 星期三| 星期四| 星期五| 星期六| 星期日
派生(Eq,Ord,Show,Read,Bounded,Enum)

现在,如果我需要几个月,它就会

数据月= 1月| 二月| 三月| 四月| 五月| 六月| 七月| 八月|九月| 十月| 11月| 12月
推导(Eq,Ord,Show,Read,Bounded,Enum)

我的问题是:(1)每月存储最大天数值的位置?(2)如果是闰年,如何提及和控制2月份,那么2月份的maxDays为29天,否则为28天?

在Java中,可以像下面给出的代码:

公共枚举月份{
1月(31),
2月(29日),
3月(31日),
4月(30日),
5月(31日),
6月(30日),
7月(31日),
8月(31日),
9月(30日),
10月(31),
十一月(30),
十二月(31)
,;
private int maxDays; //实例变量
private(int maxDays){//构造函数总是私有
this.maxDays = maxDays;
}
公众诠释getMaxDays(){
返回maxDays;
}

enums haskell derived derived-types derived-instances

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

在 Neo4j 浏览器中输入时,如何在 Cypher 查询中的新行上开始新子句,当前“Enter”或“Return”键执行查询

如果我想在 Neo4j 浏览器中输入查询时遵循 Cypher 样式指南,则“Enter”或“Return”键会执行查询,而我想在新行上开始一个新子句以写入查询的剩余部分。

如果“Enter”或“Return”键执行查询,那么允许我在新行上开始新子句的键盘键或组合键是什么?

请指导。

在此输入图像描述

neo4j cypher

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