小编Cen*_*ril的帖子

缓存gradle依赖关系,Travis CI

我正在尝试缓存私有Travis CI存储库的依赖项,Travis是否有一些特定于gradle的机制,或者我是否必须缓存特定目录?

.travis.yml:

language: groovy

jdk:
  - openjdk7

env:
- TERM=dumb

before_install:
- cd application
- chmod +x gradlew

script:
- ./gradlew build
Run Code Online (Sandbox Code Playgroud)

上次工作构建的相关部分:

Downloading https://services.gradle.org/distributions/gradle-2.1-bin.zip

......................................................................................................................................................................................

Unzipping /home/travis/.gradle/wrapper/dists/gradle-2.1-bin/2pk0g2l49n2sbne636fhtlet6a/gradle-2.1-bin.zip to /home/travis/.gradle/wrapper/dists/gradle-2.1-bin/2pk0g2l49n2sbne636fhtlet6a

Set executable permissions for: /home/travis/.gradle/wrapper/dists/gradle-2.1-bin/2pk0g2l49n2sbne636fhtlet6a/gradle-2.1/bin/gradle

Download https://jcenter.bintray.com/com/mycila/xmltool/xmltool/3.3/xmltool-3.3.pom

...
Run Code Online (Sandbox Code Playgroud)

会添加:

cache:
  directories:
  - $HOME/.gradle
Run Code Online (Sandbox Code Playgroud)

工作?也许:

cache:
  directories:
  - $HOME/.gradle/caches/modules-2/files-2.1
Run Code Online (Sandbox Code Playgroud)

gradle travis-ci

17
推荐指数
3
解决办法
5235
查看次数

如果可能,是否应始终实施复制特征?

您可以实现Copytrait来赋予类型copy-semantics而不是move-semantics.只有当其所有组成元素(产品类型的每个因素或和类型的每个变量的每个因子)也是如此时,才能这样做Copy.

这允许您也可以制作相当大的类型Copy.Copy如果类型的大小是"大",可以实现对性能有害吗?

如果Copy要经常来实现,为什么不能像自动特质SyncSend对那些可以实现,而且有退出的语义,而不是选择在类型?

copy move rust

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

Haskell:为什么 (+), (-) 是 Num 类型类的一部分?

来自ghci:

Prelude> :i Num                              
class Num a where                            
  (+) :: a -> a -> a                         
  (-) :: a -> a -> a                         
  (*) :: a -> a -> a                         
  negate :: a -> a                           
  abs :: a -> a                              
  signum :: a -> a                           
  fromInteger :: Integer -> a                
        -- Defined in `GHC.Num'              
instance Num Word -- Defined in `GHC.Num'    
instance Num Integer -- Defined in `GHC.Num' 
instance Num Int -- Defined in `GHC.Num'     
instance Num Float -- Defined in …
Run Code Online (Sandbox Code Playgroud)

haskell typeclass

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

Haskell group依赖于累加器值

我有一对视图对列表,它们代表内容标签列表及其宽度我希望按行分组(如果下一个内容标签不符合行,则将其放入另一行).所以我们有:viewList = [(View1, 45), (View2, 223.5), (View3, 14) (View4, 42)].

我想写一个函数groupViews :: [a] -> [[a]]将这个列表分组到一个子列表列表中,其中每个子列表只包含宽度小于最大指定宽度的视图(比方说250).因此,对于已排序的viewList此函数将返回:[[(View3, 14), (View4, 42), (View1, 45)],[(View2, 223.5)]]

它看起来很像groupBy.但是,groupBy不维护累加器.我尝试使用scanl+ takeWhile(<250)组合,但在这种情况下,我只能收到第一个有效的子列表.也许以某种方式使用iterate+ scanl+ takeWhile?但这看起来非常麻烦,根本不起作用.任何帮助都感激不尽.

algorithm haskell functional-programming fold

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

代数数据类型的首选内存布局是什么?

代数数据类型 (ADT) 是由具有可能递归的单元、乘积和和类型组成的类型。

考虑 Haskell 中的一个简单 ADT:

data Tree = Empty
          | Leaf Int
          | Node Tree Tree
Run Code Online (Sandbox Code Playgroud)

或者在 Rust 中使用不同的示例:

enum Message {
    Quit,
    ChangeColor(i32, i32, i32),
    Move { x: i32, y: i32 },
    Write(String),
}
Run Code Online (Sandbox Code Playgroud)

Haskell(垃圾收集)和 Rust(非垃圾收集)如何在内存中实际表示这些,以及它们应该如何表示?

我主要对更简单的非垃圾收集情况感兴趣,但如果非垃圾收集,解决方案必须对堆和堆栈都可行,例如 Rust。

LLVM 或 C/C++ 中的表示是我感兴趣的。

使用第二个例子,我可以想到两个选项:

选项 1,使用联合:

enum MCtor { CQ, CCC, CM, CW  };

struct Message {
    enum MCtor ctor;
    union {
        void*; /* Quit */
        struct { int r; int g; int b; } /* ChangeColor */ …
Run Code Online (Sandbox Code Playgroud)

llvm algebraic-data-types

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

有没有办法在 Visual Studio Code 中折叠/折叠 Rust 文档注释?

在 VSCode 中,有没有办法折叠/折叠 Rust 文档注释(即以://!和开头的换行符注释///)?Swift 有类似的评论,因此任何与 Swift 有关的答案也可能与 Rust 相关。

如果 VSCode 本身不支持此功能,是否有任何扩展可以实现相同的功能?

rust visual-studio-code vscode-extensions

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

Gradle:有效的项目名称/路径?

Gradle中的项目名称或路径中允许使用哪些字符?它是否与特定操作系统的目录名中允许的字符相同(例如:http://en.wikipedia.org/wiki/Filename#Reserved_characters_and_words)?

identifier gradle

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

州monad:从一种州转变为另一种州

假设我们有一堆具有状态monad变换器的monad作为最外层的变换器,如下所示:

-- | SEWT: Composition of State . Except . Writer monad transformers in that
-- order where Writer is the innermost transformer.
-- the form of the computation is: s -> (Either e (a, s), w)
newtype SEWT s e w m a = SEWT {
    _runSEWT :: StateT s (ExceptT e (WriterT w m)) a }
    deriving (Functor, Applicative, Monad,
              MonadState s, MonadError e, MonadWriter w)

-- | 'runSEWT': runs a 'SEWT' computation given an initial state.
runSEWT …
Run Code Online (Sandbox Code Playgroud)

monads haskell state-monad monad-transformers

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