小编gcb*_*son的帖子

Haskell中的'cons'显示为与Scheme对应的

作为练习,我在Haskell中实现了一个'cons'操作,它从任意类型的两个值形成一对.实现所需的数据类型非常简单:

data Nil = Nil deriving (Eq)
data Pair a b = Cons a b deriving (Eq)

car (Cons x _) = x
cdr (Cons _ y) = y

caar = car . car
cdar = cdr . car
cadr = car . cdr
cddr = cdr . cdr

*Main> cddr (Cons 55 (Cons (1,2,3,4) "hello, world!"))
"hello, world!"
*Main> 
Run Code Online (Sandbox Code Playgroud)

但是受到这个主题的启发,我想让结果对打印出来像Scheme列表一样 - 包括臭名昭着的"不正确的列表"(1 2 3 .4).我的实施(见下文)适用于Char的:

*Main> Cons 'a' (Cons 'b' (Cons 'c' Nil))
('a' 'b' 'c')
*Main> …
Run Code Online (Sandbox Code Playgroud)

scheme haskell

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

寻找支持"替换一个成员"和"追加"的高效阵列式结构

作为一个练习我写了一个实现了的最长递增子算法,最初在Python,但我想这个翻译成哈斯克尔.简而言之,算法涉及对整数列表进行折叠,其中每次迭代的结果是整数数组,这是整数元素更改将一个元素附加到前一个结果的结果.

当然,在Python中,您只需更改数组的一个元素即可.在Haskell中,您可以在每次迭代时替换一个元素时重建数组 - 但这似乎很浪费(在每次迭代时复制大部分数组).

总之就是我正在寻找的是一个高效的Haskell数据结构,是"N"对象的有序集合和支持的操作:lookup i,replace i foo,和append foo(其中i为[0到n-1]).建议?

haskell data-structures

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

要求下游作业使用与其父作业相同的提交

如果作业“B”在作业“A”的下游,并且都来自同一个 git 存储库,那么如何确保由 A 的构建触发的 B 构建使用相同的提交,即使已经对“A”正在构建时的存储库?

这篇文章的答案建议使用 copy-artifact 插件,但似乎应该有一种更简单的方法来指示作业“B”“为此构建使用这个确切的提交哈希”。

git jenkins

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

尝试打开.gitignore在文本编辑器中编辑它但在OS X Mountain Lion上找不到文件的位置

我使用"new app_name"创建了一个新的rails应用程序,我正在尝试编辑.gitignore文件,但无法在我的app文件夹中找到它.我在哪里可以找到它?我安装了Git.

ruby git ruby-on-rails

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

被忽略的git子目录

我有一个名为'myproject'的项目,由git进行版本控制.它有一个名为'data'的子目录,它被gitignored.

我可以为数据目录'git init'并将其作为单独的git树进行管理吗?我测试了它似乎工作.但我不确定这是不是一个好的做法,并且有潜在的问题.

git

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

如何在github上构建依赖项目?

我最近把我的一些项目放在github上,让它们成为开源的,但是我无法理解如何正确地构建项目.

我有一个Core项目和另一个依赖于Core项目的项目(还有更多).但是,当用户抓住其中一个项目的副本时,他们会抱怨它缺少Core项目,我必须告诉他们它存在于一个单独的存储库中.

我知道必须有更好的方法来做到这一点.我已经读过关于git子模块但我还没有真正理解它们.

我的问题是,是否有任何易于学习的教程或如何构建我的项目的示例?我正在使用Windows,TortoiseGit,我的项目是在C#中.

git github git-submodules

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

推送到 Git (GitLab) 时出现错误 401

我收到错误

总共 4 个(增量 2),重复使用 0 个(增量 0)
错误:RPC 失败;结果=22,HTTP 代码 = 401

当推送到 GitLab 上的 git 存储库时。

它曾经工作过。

git gitlab

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

Cherry pick仅提交触摸特定文件的提交

什么是简单的方式来请求"樱桃选择从另一个分支只有触摸特定文件的提交"?即该命令git log ..other-branch afile给出了触摸"afile"的其他分支中的未合并提交列表; 如何请求在当前分支上重播同一组提交?

git git-cherry-pick

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

映射 null->false 的规范方法

以下的规范表达式是什么:

NULL  -> false
false -> false
true  -> true
Run Code Online (Sandbox Code Playgroud)

我正在使用的是:

select (foo is not null and foo)
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常,但我想知道是否有一个标准约定。

sql

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

查找更改文件权限的提交

或类似参数的什么组合git log将找到更改文件权限的提交?

我可以使用git log -p <file>grep 来表示“新模式”,但这似乎不太令人满意。

git

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