小编yai*_*chu的帖子

Swift中的复数?

Apple的Swift语言是否支持开箱即用的复杂数字?

我在文档中找不到任何与C++等效的内容,std::complex也无法在使用它时找到它.

complex-numbers swift

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

如何使heroku在运行collectstatic时自动运行compilemessages

python manage.py compilemessages
Run Code Online (Sandbox Code Playgroud)

locale/en/LC_MESSAGES/django.mo从翻译源文件名(如)中创建名为的编译后的翻译文件locale/en/LC_MESSAGES/django.po

我想让*.mogit忽略这些文件而不将它们提交到存储库,因为这些不是源文件。

Heroku已经知道要表演

python manage.py collectstatic
Run Code Online (Sandbox Code Playgroud)

用于Django项目。

我如何使它也发挥作用compile messages

目前,我通过将编译结果文件(*.mo)添加到我的存储库中来解决此问题,但我想知道是否有更好的方法。

(如果相关-我网站的仓库:https : //github.com/yairchu/vote_tool

django heroku

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

Haskell cabal + hsc2hs

cabal可以使用hsc2hs来创建hs文件吗?怎么样?

我没有找到在手册的答案,谷歌上搜索,也没有在其他项目(有我的希望为gtk2hs,但事实证明,它不使用的阴谋)

build-automation haskell cabal hsc2hs

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

Haskell类型族和伪参数

我做了一个类似于numpy的功能array.它将列表转换为数组,将列表列表转换为2d数组等.

它的工作原理如下:

ghci> arrFromNestedLists ["hello", "world"] :: Array (Int, (Int, ())) Char
array ((0,(0,())),(1,(4,()))) [((0,(0,())),'h'),((0,(1,())),'e'),((0,(2,())),'l'),((0,(3,())),'l'),((0,(4,())),'o'),((1,(0,())),'w'),((1,(1,())),'o'),((1,(2,())),'r'),((1,(3,())),'l'),((1,(4,())),'d')]
Run Code Online (Sandbox Code Playgroud)

(Int, (Int, ()))而不是(Int, Int)因为我不知道增加元组长度的程序方法.(旁边的问题:有这样的方式吗?)

它的编码很尴尬,我不得不做一个"解决方法"(将伪参数传递给函数)以使其工作.我想知道是否有更好的方法.

所以这是代码,中断了丑陋的变通方法的细节:

{-# LANGUAGE FlexibleInstances, ScopedTypeVariables, TypeFamilies #-}

type family ListOfIndex i a
type instance ListOfIndex () a = a
type instance ListOfIndex (Int, i) a = [ListOfIndex i a]

class Ix i => ArrConv i where
  acBounds :: a -> ListOfIndex i a -> (i, i)
  acFlatten :: i -> ListOfIndex i a -> [a] …
Run Code Online (Sandbox Code Playgroud)

haskell type-families

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

Haskell相当于C的__LINE__

有没有办法在Haskell中获取行号/追溯信息?

(比如C的__LINE__宏或Python traceback.extract_stack())

这对我来说是有用的,可以编写生成C++代码的Haskell程序,该代码将通过注释来表示哪个Haskell行负责哪个C++行.

Haskell示例:

LINE "#include <foo.h>" -- this is line 12
: INDENT "void Foo::bar() {" "}"
    [ LINE $ "blah(m_" ++ x ++ ", \"" ++ x ++ "\");"
    | x <- ["Potato", "Avocado"]
    ]
Run Code Online (Sandbox Code Playgroud)

将生成此C++代码:

#include <foo.h>                  // gen.hs:12
void Foo::bar() {                 // gen.hs:13
  blah(m_Potato, "Potato");       // gen.hs:14
  blah(m_Avocado, "Avocado");     // gen.hs:14
}                                 // gen.hs:13
Run Code Online (Sandbox Code Playgroud)

haskell code-generation stack-trace

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

Cabal:可执行数据文件

我想在 cabaldata-files部分包含一个可执行文件,以便在我的 Haskell 程序中将其作为子进程执行。

该文件在那里,getDataFileName适用于它,但它缺少可执行位,因此尝试System.Process.createProcess使用permission denied.

cabal 有没有办法保留文件的执行权限?有没有另一种干净的方法来解决这个问题?

haskell cabal

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

将 git 平分在祖先路径上

我有一个带有复杂的分支和合并树的存储库,我想使用 git bisect 来查找引入错误的时间。

我有一个好的提交和坏的提交来开始二等分,其中好的提交是坏提交的祖先。

我希望git bisect提交具有良好提交作为祖先的提交,但它没有(使用 git 2.21.0)。

目前,我通过保留提交列表并git rev-list --ancestry-path GOOD..BAD在中间使用和选择提交来手动进行二等分。有没有办法让这个自动化git bisect?它是否有旗帜可以留在祖先的道路上?

首先在祖先路径中一分为二的推理

与正在搜索的错误相关的功能可能并非在所有分支中都存在,因此检查在那里无关紧要。不过,它们应该存在于祖先路径中。

一旦完成了对祖先路径的二等分,一个人可能会得到一个合并提交作为罪魁祸首,他们就会知道这个错误来自那个分支。这已经教会了人们很多关于这个错误的知识。

为了继续对引入 bug 的分支进行二等分,不需要单独测试每个提交(因为它们不一定具有使 bug 出现所需的特性),但应该将每个提交与最后一个好的提交合并然后检查错误是否存在。然后可以查明特定的提交,当与好的提交合并时,会引入错误。

请注意,我已经多次执行此过程,它对我非常有用,我只是在寻找使其更方便的方法。

git git-bisect

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

应该将 stack.yaml.lock 签入源代码管理吗?

由于堆栈 v2,stack产生一个stack.yaml.lock文件。

这个文件是否应该提交给源代码管理,比如stack.yaml?还是应该是.gitignored?

一方面它是生成的内容而不是源代码,另一方面它包含来自 Hackage 的依赖项的哈希值,因此它对于安全的可重现构建是必要的。

version-control haskell haskell-stack

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

是否有功能/库/技术可以帮助为 TH 生成的实例生成正确/非冗余的上下文?

是否有一个函数可以接受给定的上下文/[Pred]并简化它?

我的意思的一些例子:

  • 如果上下文包含Eq [a]将其替换为Eq a(因为它意味着更复杂的约束)
  • 如果上下文包含 Eq Int,过滤掉
  • 删除重复项

用例:我已经实现了TH 函数来派生实例,而这些实例又使用类似的东西fmap它们需要上下文之,并且我想生成不会生成冗余约束警告的实例。

我已经做了一个simplifyContext :: [Pred] -> Q [Pred]助手来做到这一点,但在我看来这听起来像是一个普遍的需求,我希望这可能已经存在于某个图书馆中,但我已经尝试找到它但还没有。或者,如果它不存在,那可能是因为我缺少一种更简单的技术..

haskell typeclass template-haskell

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

关于类型族实例的信息

介绍:

在查看snoyman的"持久性"库时,我发现自己想要ghci(或其他工具)帮助搞清楚.

:info对于类型系列和数据系列,ghci 似乎不像"普通"类型那样好用:

> :info Maybe
data Maybe a = Nothing | Just a     -- Defined in Data.Maybe
...
> :info Persist.Key Potato -- "Key Potato" defined in example below
data family Persist.Key val     -- Defined in Database.Persist
... (no info on the structure/identity of the actual instance)
Run Code Online (Sandbox Code Playgroud)

人们总是可以在源代码中查找实例,但有时可能很难找到它,它可能隐藏在template-haskell生成的代码等中.

代码示例:

{-# LANGUAGE FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, TypeFamilies, QuasiQuotes #-}

import qualified Database.Persist as Persist
import Database.Persist.Sqlite as PSqlite

PSqlite.persistSqlite [$persist|
Potato
    name String
    isTasty Bool
    luckyNumber Int …
Run Code Online (Sandbox Code Playgroud)

haskell ghci type-families

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