我刚刚安装了GNUStep,MSYS,代码和开发,允许我开发目标C在Windows上的应用程序。我按照所有的指示,意识到我遇到了一个问题。当我这样做:控制台中的C:\Users\Marcelo> g++ o.m时,我得到以下内容:
=>g++: CreateProcess: No such file or directory
我在StackOverflow中看到了4个类似的问题,但没有一个问题与目标C有任何关系,也没有一个答案能让我解决这个问题。我已经做了所有被要求的事:
重新启动计算机
检查环境路径
访问C:\GNUStep\bin\g++以执行操作
我的可变
我是第一次尝试F#,没有多少先验的理论函数式编程知识。
我写了一个小函数,所以在列表上计算简单的移动平均线。下面是:
let rec sma n data =
let length = List.length data
if length < n then data
else (sma n data.[..length-2]) @ [List.average data.[length - n .. ]]
我对这个结果并不满意。它看上去笨手笨脚,我原以为会有一个更优雅的解决办法,但却找不到。然后我有了一个疯狂的想法,然后倒过来了。我计算了SMA,从清单的第一步开始移动到前面:
我正在使用Text.XML.Light编写XML (反)序列化程序,并废弃样板(at ),到目前为止,我已经得到了用于“普通”at的工作代码,但我仍然坚持反序列化存在性。
我得到了存在主义数据类型
data DataBox where
DataBox :: (Show d, Eq d, Data d) => d -> DataBox
我正试着让这个编译
instance Data DataBox where
gfoldl k z (DataBox d) = z DataBox `k` d
gunfold k z c = k (z DataBox) -- not OK
我有以下haskell代码:
fac n = product [1..n]
taylor3s w0 f f' f'' t h = w1 : taylor3s w1 f f' f'' (t+h) h
where hp i = h^i / fac i
w1 = w0 + (hp 1) * f t w0 + (hp 2) * f' t w0 + (hp 3) * f'' t w0
taylor_results = take 4 $ taylor3s 1 f f' f'' 1 0.2
给定包含小写字母的文本字符串,将其编码如下:(我将使用abcdef)
首先,对字母密码进行编码,但这次是0索引.000102030405
倒过来。504030201000
通过字符串循环。
如果下两个数字加在一起是25或更小,则对这两个数字进行编码。5 04 03 02 01 00 0
否则,对一个数字进行编码。f e d c b a a
加入。fedcbaa
测试用例
abcdef fedcbaa
abcdefghijklmnopqrstuvwxyz fyxwvucjsrqponmlktihgfedcbaa
helloworld
背景
Lambda微积分是一个使用lambda项进行计算的模型。
变量x是lambda项。
如果E是lambda项,那么lambda抽象\lambda x. E就是lambda项。
如果E_1, E_2是lambda项,则lambda应用程序E_1 E_2是lambda项。
计算规则称为\beta-reduction:(\lambda x. E_1) E_2被简化为E_1,其中x的每一次出现都被E_2替换。例如,(\lambda x. x x)(\lambda y. y)被简化为(\lambda y. y)(\lambda y. y),然后简化为\lambda y. y。
组合逻辑在类似的前提
最近换回了Ubuntu16.04,让阴谋集团工作遇到了前所未有的困难。目前已安装了1.22号阴谋,“正在工作”.
我试着安装了一个我作为测试编写的包,但它依赖于base>=4.10,显然是1.22阴谋组织无法访问的:
cabal update
cabal install base
Resolving dependencies...
All the requested packages are already installed:
base-4.9.1.0
Use --reinstall if you want to reinstall anyway.
cabal install ba
因此,我刚刚开始从“真实世界Haskell”一书中教自己Haskell,在做其中一个练习的过程中,我编写了以下代码:
step acc ch | isDigit ch = if res < acc
then error "asInt_fold: \
\result overflowed"
else res
where res
我在执行“实现函数语言:西蒙·L·佩顿·琼斯和大卫·R·莱斯特的教程”的章节时遇到了困难。
我在OSX上使用ghc,我使用make生成输入,例如"make language.lhs“和"make utils.lhs”。
peano:pj-lester-book bwat$ make utils.lhs
cat utils.src | ./make-version 1 G >utils.lhs
peano:pj-lester-book bwat$ make language.lhs
make: *** No rule to make target `language-tut
在搜索雷蒙德·斯穆里安“模仿一只知更鸟”的信息时,我偶然发现了。我认为这是一个有趣的想法,并决定用这些组合子实现从第24章到“模仿一只知更鸟”中的“会算术的鸟”。我已经定义了真理、虚假、后继、前任和零检查组合子,再加上将组合布尔转换为Haskell布尔的函数,反之亦然。但是,当我试图创建一个函数,它接受一个组合数并返回一个整数时,我总是会遇到一些问题。我想知道如何使这个函数工作。到目前为止,我得到的是:
-- | The first 7 combinators below are from Stephen Tetley's Data.Aviary.Birds
-- | (http://
下面是可扩展AST的代码。我的目标是允许以后在Expr类中添加更多的表达式类型,而不是在单个数据块中添加所有类型。
data Constant o = Constant o deriving (Show)
data Add l r o = Add (l o) (r o) deriving (Show)
class Expr e where
simplify :: (Expr a, Num o) => (e o) -> (a o)
instance Expr Constant where
simplify (Constant a) = Constant a
instan
像Haskell这样的函数式编程语言允许用户使用等式表示法来定义函数,其中左侧有几个模式参数,可以与任意多个嵌套匹配。例如:
(fun (Ctr A A) (Foo (Tic X)) a b c d e) = a
(fun (Ctr A B) (Foo (Tac Y)) a b c d e) = b
(fun (Ctr B A) (Bar (Tic X)) a b c d e) = c
(fun (Ctr B B) (Bar (Tac Y)) a b c d e) = d
(fun x y a b c d e) = (df x y a b c d e)
遵循中的示例
Prelude> let abs x = if x < 0 then -x else x
Prelude> abs 5
5
Prelude> abs -3
<interactive>:1:6:
No instance for (Num (a0 -> a0))
arising from the literal `3'
Possible fix: add an instance declaration for (Num (a0 -> a0))
In the second argument o