这是一个有文化的haskell帖子.只需将其保存为"ChurchList.lhs"即可运行它.
> {-# LANGUAGE Rank2Types #-}
Run Code Online (Sandbox Code Playgroud)
教会编码列表是一种通过函数表示列表的方式.它类似折叠和延续传递风格.
> newtype ChurchList a = CList {runCList :: forall r. (a -> r -> r) -> r -> r}
Run Code Online (Sandbox Code Playgroud)
为了说明这对应于列表,这里是O(n)同构
> fromList :: [a] -> ChurchList a
> fromList xs = CList $ \cons empty -> foldr cons empty xs
> toList :: ChurchList a -> [a]
> toList cl = runCList cl (:) []
> instance Show a => Show (ChurchList a) where
> show cl = "fromList " ++ show (toList …Run Code Online (Sandbox Code Playgroud) 例如,这不是类型检查
\cons nil -> 5 `cons` 3 `cons` nil
Run Code Online (Sandbox Code Playgroud)
这也不是
\(#) -> 5 # 3 # nil
Run Code Online (Sandbox Code Playgroud)
虽然这两者都有
\cons nil -> 5 `cons` nil
\(#) nil -> 5 # nil
Run Code Online (Sandbox Code Playgroud)
有没有办法在lambdas中为运算符分配infixites.我试过了
infixr 5 #
foo = \(#) nil -> 5 # 3 # nil
Run Code Online (Sandbox Code Playgroud)
这给出了没有定义#和的错误
foo = \(infixr 5 #) nil -> 5 # 3 # nil
Run Code Online (Sandbox Code Playgroud)
这只是一个语法错误.
我能做什么?
如何让Travis CI与C++ 14一起工作?
这是我们当前的.travis.yml文件:
language: cpp
compiler:
- gcc
- clang
os:
- linux
- osx
script:
make main
Run Code Online (Sandbox Code Playgroud)
这是我们的 makefile
# Factor Pro
# Macros
CXXFLAGS = -Os -std=c++14
# Rules
all::main
main: main.cpp
g++ -o main $(CXXFLAGS) main.cpp
clean:
rm -rf *.o main
Run Code Online (Sandbox Code Playgroud)
它可以工作osx,但不是linux.
在语言,如Agda,Idris或Haskell用类型扩展,有一种=像以下类型排序
data a :~: b where
Refl :: a :~: a
Run Code Online (Sandbox Code Playgroud)
a :~: b意味着a和b是一样的.
haskell functional-programming equality dependent-type morte
什么是git-remote-http错误代码128.当我尝试使用需要身份验证的repo时它发生了(它从未要求输入密码.)是否有一些中心位置可以找出错误代码的含义?
对于一组数量相似的对象(称为有序字段),您只需要以下内容:
其余的(如减法和平等)如下.Obvioulsy,我还需要添加一些东西像__init__和__str__,但是我可以继承什么类型的对象从将提供其他运营商?我希望从上面推断出的其他一些运营商包括:
Gloss是用于OpenGL游戏和模拟的Haskell库.Android似乎支持OpenGL.
有没有办法在Android设备上运行基于Gloss的库?
假设你想使用自己的show函数(例如let show = take 1000 . Prelude.show).你如何允许ghci使用它来打印而不是内置show?
我正在测试一个程序.具体来说,我正在单独测试一个函数.它需要一个可以读写的句柄.问题是,stdin或者stdout单独做不到的工作.我不想仅仅因为这样的测试而重写我的代码,也不想为了测试而打开一个套接字.此外,该程序尚不可用(功能未定义)所以我不能只通过运行它来测试它.
什么是stdin从stdouthaskell 获取输入和输出的句柄.