小编Syd*_*ove的帖子

为什么我不能把两个读者叠在一起呢?

我得到这样的错误:

假设我有一个monadStack ReaderT A (ReaderT B m),每当我使用ask或者asks,我得到这样的错误:

Types.hs:21:10:
    Couldn't match type ‘A’ with ‘B’
    arising from a functional dependency between:
      constraint ‘MonadReader B m’
        arising from the instance declaration
      instance ‘MonadReader A m2’ at Types.hs:21:10-63
    In the instance declaration for ‘MonadReader A m’
Run Code Online (Sandbox Code Playgroud)

为什么Haskell无法确定使用哪个实例?另外,我该如何解决这个问题?假设put AB相同的数据类型不是一个选项,因为我需要一个MonadReader A m实例.

monads haskell monad-transformers

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

包含数据的可执行文件

我一直在考虑在linux系统上部署配置的方法,特别是dotfiles.

我真的想以某种方式将所有的dotfiles编译成一个可执行文件,在执行时,将它们部署在正确的位置.这里有一个棘手的部分:文件在要执行可执行文件的系统上不可用,我只想"运送"可执行文件.没有其他的.

有没有办法将文件放入可执行文件中,以便以后可以安全地提取它们?

(我正在尝试在Haskell中构建它,但任何语言都可以用于POC.))

haskell dotfiles

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

组织模式捕获

我正在尝试为组织捕获制作一个“类”模板。

我想要的是轻松制作这种条目:

* TODO <course>: Week <week> Lecture <number>
  SCHEDULED: %^T
** TODO prepare for class: <course>-<week>-<number>
   SCHEDULED: <two days before T> DEADLINE: <one day before T>
** TODO review class: <course>-<week>-<number>
   SCHEDULED: <one day after T> DEADLINE: <two days after T>
Run Code Online (Sandbox Code Playgroud)

目前,我有这个模板。

(setq org-capture-templates
   '(
    ("c" "Class" entry (file "~/sydbox/personal/workflow/class.txt")
         "* TODO %^{Course}: Week %^{Week} Lecture %^{Number}\n  SCHEDULED: %(org-insert-time-stamp (org-read-date nil t nil nil nil \" \"))\n location: %^{location} %?\n** TODO %\\1: prepare lecture %\\3 from week %\\2\n   DEADLINE: …
Run Code Online (Sandbox Code Playgroud)

emacs org-mode

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

Haskell这个文件的路径

有没有办法获取定义函数的文件的路径?

例如:

rootappdir
|- Foo.hs
|- Bar.hs


module Foo where

getThisDir :: IO Filepath
getThisDir = ...

prelude> getThisDir
absolute/path/to/rootappdir/Foo.hs
Run Code Online (Sandbox Code Playgroud)

如果可以使用更简单的函数:: Filepath,那就更好了.也许我们需要使用预处理器?

haskell

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

这种处理哈希冲突的方法是新的/唯一的吗?

在处理哈希映射时,我已经看到了一些处理哈希冲突的策略,但我们提出了一些不同的东西.我想知道这是否是新事物.

只有散列和将要散列的数据结构可以使用时,此版本的散列映射才有效.(hashable在Haskell中就是这种情况,我们建议实现这种方法.)

我们的想法是,不是在哈希映射的每个单元格中存储列表或数组,而是存储递归哈希映射.这个递归哈希映射的唯一区别是你使用不同的盐.这样,哈希映射的一个级别上的哈希冲突很可能不是下一级别的哈希冲突.因此,插入这样的哈希映射不再是O(此哈希上的冲突数),而是O(这种冲突在递归时发生的级别数),这很可能更好.

可以在此处找到更详细的说明和实现:

https://github.com/tibbe/unordered-containers/pull/217/files/58af4519ace34c5f7d3c1359907ff75e27b9cdb8#diff-ba23e0f18c79cb873ac5375367524cfaR114

hash haskell hashmap hashable unordered-containers

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

编程语言中的"缺失"(?)功能?

让我们以Haskell为例,因为它最接近我将要描述的语言.

Int例如,类型可以被视为所有可能值(该类型)的集合.为什么我们只能使用非常具体的设置呢? Int,Double等等......而不是类型系统中的所有子集.

我想要一种我们可以定义任意类型的语言Int greater than 5.有这样的语言的例子吗?如果没有,为什么不呢?

haskell types type-systems language-design

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

静态继承python

我正试图让某种静态继承发生.下面的代码打印"nope".我不确定如何解释自己,但我想要的是A类使用B的方法(如果存在的话).

class A(object):
    @staticmethod
    def test():
       print("nope")

    @staticmethod
    def test2():
        __class__.test()

class B(A):
    @staticmethod
    def test():
        print("It Works")

    @staticmethod
    def run():
        __class__.test2()


if __name__ == "__main__":
    B.run()
Run Code Online (Sandbox Code Playgroud)

python

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