小编Len*_*low的帖子

是否有Haskell代码格式化程序?

我曾经写过

data A = A {
      a :: Double
    }
    deriving(Eq, Show)
Run Code Online (Sandbox Code Playgroud)

但现在我更喜欢

data A = A {
      a :: Double
    } deriving(Eq, Show)
Run Code Online (Sandbox Code Playgroud)

我认为答案是否定的,但无论如何我都会问:Haskell是否有代码格式化程序?

haskell code-formatting

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

再出口合格?

假设你有两个模块,比如

module Foo.A where

foo = 42
Run Code Online (Sandbox Code Playgroud)

module Foo.B where

foo = 12
Run Code Online (Sandbox Code Playgroud)

你想写一个超级模块

module Foo (
      module Foo.A
    , module Foo.B
    ) where

import Foo.A
import Foo.B
Run Code Online (Sandbox Code Playgroud)

重新导出这些模块,你会得到一个名字冲突.

这有解决方案吗?

syntax haskell module

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

集成单元测试的当前状态与Haskell的Cabal?

当我谷歌如何将单元测试与cabal文件集成时,我发现

如何使用cabal运行所有单元测试(例如,每次我进行"cabal build")?

haskell quickcheck cabal hunit

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

C是否有类似Haskell/ML的编译器?

人们已经在Scheme中为iPhone 写过游戏.因为(某些)Scheme编译器可以编译为C,所以很容易与Objective-C混合并与XCode集成.

知道 Haskell和OCaml编译器的补丁,以启用ARM/iOS后端.但那些看似非官方的,实验的/不稳定的.

我更喜欢静态haskell/ML类型系统而不是Scheme的动态类型.是否有一个稳定的ML/SML/Haskell编译器生成C代码,以便它可以像Scheme/Gambit-C一样使用?

iphone scheme haskell sml gambit

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

计算列表中的唯一元素

是否有标准高阶函数的直接组合来计算列表中的唯一元素?

例如,结果为

[1, 1, 4, 0, 4, 4]
Run Code Online (Sandbox Code Playgroud)

会是这样的

[(1,2), (4,3), (0,1)]
Run Code Online (Sandbox Code Playgroud)

haskell list unique

12
推荐指数
4
解决办法
6943
查看次数

在Haskell中遍历多边形段的数据结构?

我有一个长度为1的水平/垂直段的无序列表,它构建一个或多个多边形.我现在需要找到每个多边形中所有连接角的列表.

例:

[Horizontal (0,0), Vertical (2,0), Horizontal (1,0), Horizontal (2,2), Vertical (2,1)]
Run Code Online (Sandbox Code Playgroud)

代表这样的一条线

2         X--X
          |
1         X
          |
0   X--X--X

    0  1  2
Run Code Online (Sandbox Code Playgroud)

我会寻找角落[(2,0),(2,2)].

在命令式语言中,我可能会使用(双重)链接数据结构并遍历这些结构.我无法在Haskell中找到一个优雅的代表.你会怎么做?

haskell data-structures

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

如何在Haskell中实现代数数据类型的"Ord"?

想象一下,你有一个评级

Rating = OneStar | TwoStars | ThreeStars | FourStars | FiveStars
Run Code Online (Sandbox Code Playgroud)

在Haskell中为这样的代数数据类型实例化/实现"Ord"的最佳方法是什么?

haskell

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

Haskell廉价列表操作的最新技术?

对于像append列表(不是字符串)这样的廉价操作,我会使用Data.DList.让我筋疲力尽的是Hackage上的软件包标记为"实验性",最后一次更新是在2009年.

在Haskell中DList仍然是可行的吗?

haskell list data-structures

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

列表与地图(关键安全与所有元素的映射)

以下场景的最佳数据结构是什么?

比如,你有一个URL列表

linkHaskell = Url "http://www.haskell.org"
linkReddit = Url "http://www.reddit.com"
...
Run Code Online (Sandbox Code Playgroud)

并且你单独使用它们,但是你也希望对它们进行操作,例如链接检查,你可以把它们放在一个列表中

allLinks = [
    linkHaskell
  , linkReddit
  ...
  ]
Run Code Online (Sandbox Code Playgroud)

但这很容易出错,因为您可能忘记添加新链接.

您可以选择将这些URL存储在Map中,但是如果您在键中存在拼写错误,则会为运行时错误交换编译时错误.

在Haskell你会做什么?

haskell data-structures

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

原生换行符?

在Haskell中确定本地换行符(例如'\n'或'\ r \n')的最佳方法是什么?

我看到GHC.IO:Handle中有一个"nativeNewline"函数,但是假设它既是私有API又是大多数非标准Haskell.

haskell newline

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

Bool和List的"类似"功能?

有时我发现自己编程模式"如果Bool不是假的"或"如果列表不是空的则使用它,否则使用别的东西".

我正在寻找Bool和List的函数,这些函数对于Maybe来说是"可能"的功能.有吗?

更新:我的意思是使用Bool案例作为List-case的一般化.例如,当使用Data.Text作为T时:

if T.null x then x else foo x
Run Code Online (Sandbox Code Playgroud)

我希望减少这种锅炉板代码.

haskell catamorphism

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

Atom适用于通用C代码生成吗?

你能用Atom在Haskell中编写C语言吗?这是可能的,那会有意义吗?

embedded haskell code-generation

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

当前模块是否有命名空间?

我的问题出在最后一行:

module A where

data A = A { f :: Int }

defaultA = A { f = 0 }
Run Code Online (Sandbox Code Playgroud)

module B where

import A as A

data B = B { f :: Int }

bToA :: B -> A
bToA x = defaultA { A.f = f x }
Run Code Online (Sandbox Code Playgroud)

B.hs:8:26:
    Ambiguous occurrence `f'
    It could refer to either `B.f', defined at B.hs:5:13
                          or `A.f', imported from A at B.hs
Run Code Online (Sandbox Code Playgroud)

由于我不能在其自身中包含B限定,有什么替代方法可以解决命名空间冲突?我宁愿不重命名冲突函数.

编辑:更新了这些示例.

haskell scope module

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