我读到过,可以使用foldr定义map,即它是一个原始的递归函数。至少对于列表是这样的。
现在我的问题是:为什么Functor不是Foldable的子类型类?如果fmap只能根据列表的foldr定义,那么它们的特殊之处在于什么呢?
使用foldr查看map的定义:
myMap f xs = foldr step [] xs
where step x ys = f x : ys
我可以使用Monoid来达到以下目的:
myMap f xs = foldr step mempty xs
where step x ys = f x : ys
但遗憾的是,我不是一个足够的哈斯克尔魔术师
我是第一次尝试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,从清单的第一步开始移动到前面:
我刚刚安装了GNUStep,MSYS,代码和开发,允许我开发目标C在Windows上的应用程序。我按照所有的指示,意识到我遇到了一个问题。当我这样做:控制台中的C:\Users\Marcelo> g++ o.m时,我得到以下内容:
=>g++: CreateProcess: No such file or directory
我在StackOverflow中看到了4个类似的问题,但没有一个问题与目标C有任何关系,也没有一个答案能让我解决这个问题。我已经做了所有被要求的事:
重新启动计算机
检查环境路径
访问C:\GNUStep\bin\g++以执行操作
我的可变
下面是可扩展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
我正在使用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
给定包含小写字母的文本字符串,将其编码如下:(我将使用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
因此,我刚刚开始从“真实世界Haskell”一书中教自己Haskell,在做其中一个练习的过程中,我编写了以下代码:
step acc ch | isDigit ch = if res < acc
then error "asInt_fold: \
\result overflowed"
else res
where res
在搜索雷蒙德·斯穆里安“模仿一只知更鸟”的信息时,我偶然发现了。我认为这是一个有趣的想法,并决定用这些组合子实现从第24章到“模仿一只知更鸟”中的“会算术的鸟”。我已经定义了真理、虚假、后继、前任和零检查组合子,再加上将组合布尔转换为Haskell布尔的函数,反之亦然。但是,当我试图创建一个函数,它接受一个组合数并返回一个整数时,我总是会遇到一些问题。我想知道如何使这个函数工作。到目前为止,我得到的是:
-- | The first 7 combinators below are from Stephen Tetley's Data.Aviary.Birds
-- | (http://
我正在熟悉python,但我刚刚发现了,即使我目前正在尽可能多地阅读文档,我也很难为我的简单问题找到简单的答案:
如何对一段音乐(例如从.wav或.aup文件中)进行特定速率的采样,以获得时间和频率(或log2),最终使用?
这里的想法是指定速率(比方说每0.1秒)并得到行。
Time, Frequency
.1,441.223
.2,441.266
.3,441.488
etc.
我猜music21.audioSearch.autocorrelationFunction工具应该没问题,但我不确定我是否确切地理解它的作用.
如果有帮助的话-,我的目标是通过计算分析把这些音乐放在一起,以