小编Ant*_*sky的帖子

GHC 6.12和MacPorts

我最近在运行OS X 10.5.8的英特尔MacBook上安装了(来自二进制安装程序)GHC 6.12和Haskell Platform 2010.1.0.1,最初,一切正常. 编辑:我必须安装cabal,alexhappy从源,但在之后,一切似乎都工作正常.然而,我发现,如果我使用的cabal install安装包,它取决于MacPorts的库(例如,cabal install --extra-lib-dirs=/opt/local/lib --extra-include-dirs=/opt/local/include gd),东西GHCI做工精细,但如果我尝试编译,我得到的错误

Linking test ...
Undefined symbols:
  "_iconv_close", referenced from:
      _hs_iconv_close in libHSbase-4.2.0.0.a(iconv.o)
  "_iconv", referenced from:
      _hs_iconv in libHSbase-4.2.0.0.a(iconv.o)
  "_iconv_open", referenced from:
      _hs_iconv_open in libHSbase-4.2.0.0.a(iconv.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

经过一些谷歌搜索,我发现了一个很长的Haskell-cafe线程讨论这个问题.结果似乎是MacPorts安装了libiconv的更新版本,而二进制接口与系统附带的版本略有不同.因此,如果您尝试链接任何MacPorts库,MacPorts libiconv也会被链接; 由于基础库是为了链接不同版本的libiconv而构建的,因此事情就会破裂.我已经尝试设置LD_LIBRARY_PATHDYLD_LIBRARY_PATH添加更多标志以试图让它/usr/lib再次查看(例如 cabal install --extra-lib-dirs=/opt/local/lib …

macos haskell ghc conflicting-libraries libraries

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

Haskell转换列表到元组列表

我有这样的清单

["peter","1000","michell","2000","kelly","3000"]
Run Code Online (Sandbox Code Playgroud)

我想转换成

[("peter",1000),("michell", 2000),("kelly",3000)]
Run Code Online (Sandbox Code Playgroud)

请帮忙.谢谢.

haskell tuples list

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

无法为OCaml顶层和coqtop(以及Proof General)提供长(1024+个字符)输入

编辑4:事实证明,这实际上只是TTY输入的一个限制; 没有具体的OCaml,Coq或Emacs引起的问题.


我正在使用Emacs中的Proof General进行Coq程序,我发现输入的错误太长了.如果coqtop通过Proof General 提交的区域包含超过1023个字符,则Proof General(虽然不是Emacs)在等待响应时挂起,并且*coq*缓冲区包含一个^G超过1023的每个字符的额外字符.例如,如果是1025个字符区域被发送到coqtop,然后*coq*缓冲区将以两个额外的字符结束^G^G.我无法继续过去文件中这一点,我必须杀死coqtop过程(具有C-c C-xkill/ killall从终端).

关于这种限制的事情coqtop本身就产生了.如果生成一个1024个字符或更长的字符串并将其输入,例如通过运行

perl -e 'print ("Eval simpl in " . (" " x 1024) . "1.\n")' | coqtop
Run Code Online (Sandbox Code Playgroud)

一切正常.(同样,coqc工作正常.) 但是,如果我coqtop在终端中运行,我不能在一行上输入超过1024个字符,包括结束返回字符.因此,输入一个1023个字符的行然后点击返回工作; 但是在输入1024个字符后,点击任何键,包括返回(但不包括删除等),除了产生哔声之外什么都不做.事实证明ocaml(OCaml toplevel)具有相同的行为:

perl -e 'print ((" " x 1024) . "1;;")' | ocaml
Run Code Online (Sandbox Code Playgroud)

工作正常,但如果ocaml从终端运行,我不能在一行上输入超过1024个字符.由于我的理解是coqtop依赖于OCaml顶级(更明显的是在运行时coqtop -byte),我想这是一个相关的限制. …

emacs ocaml tty coq proof-general

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

类型族可以评估为限定类型,例如“C a => T”吗?

有没有办法编写一个有时评估为受约束类型的类型系列,例如C a => T

\n

当我编写以下类型系列时出现了这个问题:

\n
type family Function (cs :: [Constraint]) (as :: [Type]) (r :: Type) :: Type where\n  Function (c ': cs) as        r = c => Function cs  as r\n  Function '[]       (a ': as) r = a -> Function '[] as r\n  Function '[]       '[]       r = r\n
Run Code Online (Sandbox Code Playgroud)\n

目标是Function '[Integral a, Show b] '[String, b, a] (IO ())评估为Integral a => Show b => String -> b -> a …

haskell type-families type-level-computation

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

在AppleScript中将显示器置于睡眠状态(⇧^⏏/ shift + control + eject)

是否可以编写AppleScript以使显示器进入睡眠状态(如果计算机设置为锁定睡眠状态,则会锁定显示屏)?您可以通过输入⌃⇧⏏(shift+ control+ eject)从键盘执行此操作; 这使得所有程序等都在运行,并且只是关闭屏幕.

macos applescript

6
推荐指数
3
解决办法
7135
查看次数

找到长度可以除以3的路径

给定一个无向图(未加权)和两个顶点uv,如何找到uv之间的路径,其长度可被3整除?

注意,路径不一定是简单的路径.

我想到了DFS的变体和存储路径(以及回溯)的堆栈,但是不能完全理解如何跟踪非简单路径.

时间复杂度应为O(V + E),因此我预计它必须是BFS或DFS的变体.

algorithm graph-theory graph graph-algorithm data-structures

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

有没有办法使用Cabal来保持Haskell包的最新状态?

我对Cabal的工作原理感到困惑.我习惯于将经理作为其核心功能的一部分打包,能够轻松更新所有已更改的软件包,或者至少获取系统中包含可用更新的软件包列表.但是Cabal似乎缺乏这种功能.我错过了什么吗?

有办法:

  1. 自动或轻松更新所有过时的软件包; 或者,如果没有,
  2. 获取我的系统上安装的可用更新的软件包列表?

haskell cabal

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

是否有可能懒洋洋地生成轮子?

Erastosthenes论文的真正筛选中,作者使用有限大小的轮子跳过检查筛子结构上的前N个素数的倍数.例如,为了避免检查倍数2, 3,您可以从5,然后交替添加2和4.这是wheel 2以下内容:

-- wheel 0 = ([2],[1])
-- wheel 1 = ([3,2],[2])
-- wheel 2 = ([5,3,2],[2,4]) -- "start at 5, add 2, 4, 2, 4..."
-- wheel 3 = ([7,5,3,2],[4,2,4,2,4,6,2,6])
Run Code Online (Sandbox Code Playgroud)

她的车轮在筛分过程启动时完全生成.这是一个权衡,因为更大的轮子需要更多的内存.不过,我发现轮子生成背后的潜在机制本身很有趣.鉴于其明显的重复性质,我想知道是否有可能创造一个"无限轮",就像筛子一样,它呈现为一条流?我想,这个流将是列表序列的限制[1], [2], [2, 4], [4, 2, 4, 2, 4, 6, 2, 6]...- 并且可能作为primes自身的实现.

algorithm haskell functional-programming

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

如何在DRF中序列化自定义用户模型

我已经制作了一个自定义用户模型,通过参考教程,这就是我如何序列化新用户模型:

Serializers.py

from django.conf import settings
User = settings.AUTH_USER_MODEL

class UserSerializer(serializers.ModelSerializer):
    post = serializers.PrimaryKeyRelatedField(many=True, queryset=Listing.objects.all())
    class Meta(object):
        model = User
        fields = ('username', 'email','post')
Run Code Online (Sandbox Code Playgroud)

Views.py

from django.conf import settings
User = settings.AUTH_USER_MODEL
class UserList(generics.ListAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用这个序列化器时,我得到了

'str'对象没有属性'_meta'

我做错了什么?

python django serialization django-serializer django-rest-framework

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

Haskell中的模块签名是什么?

我最近发现Haskell的功能称为“模块签名”。如我所知,它们被放入.hsig文件中,并以signature关键字而不是开头module。这样的文件的示例语法可能看起来像

signature Str where

data Str
empty :: Str
append :: Str -> Str -> Str
Run Code Online (Sandbox Code Playgroud)

但是,我无法想象人们将如何以及为什么使用它们。您能否解释一下它们解决了哪些问题以及如何正确利用它们?

他们强烈地提醒我可以在OCaml(link)中看到的模块系统,它也具有模块签名和单独的实现,但是我无法确定这两个概念有多接近。有关系吗?

haskell haskell-backpack

5
推荐指数
0
解决办法
185
查看次数