我刚刚开始使用Haskell.我正在尝试创建一个模仿replicateHaskell中的标准函数但使用递归的函数.例如,
Prelude> replicate 3 "Ha!"
["Ha!","Ha!","Ha!"]
Run Code Online (Sandbox Code Playgroud)
它应该是类型Int -> a -> [a].到目前为止,我有:
myReplicate :: Int -> a -> [a]
myReplicate x y = y : myReplicate (x-1) y
myReplicate 0 y = [ ]
Run Code Online (Sandbox Code Playgroud)
但是,我的函数总是生成无限列表:
Prelude> myReplicate 3 "Ha!"
["Ha!","Ha!","Ha!","Ha!","Ha!","Ha!","Ha!",...
Run Code Online (Sandbox Code Playgroud) 我想写一个像这样的类似复制的函数:
repli"the"3 ="ttthhheee"和repli"jason"4 ="jjjjaaaassssoooonnnn"
这是我写的代码:
myrepli [] n = []
myrepli [x] 0 = []
myrepli [x] n = (x:(myrepli [x] (n-1)))
repli [] n = []
repli (x:xs) n = (myrepli x n) ++ (repli xs n)
Run Code Online (Sandbox Code Playgroud)
我得到的错误是这样的:
Run Code Online (Sandbox Code Playgroud)Couldn't match expected type `[a]' against inferred type `Char' Expected type: [[a]] Inferred type: [Char] In the first argument of `repli', namely `"jason"' In the expression: repli "jason" 3
我怎样才能解决这个问题?谢谢.
我需要在一列中找出重复的数字(例如:1111,333333333,5555555555,777777777等).
如何在sql server中执行此操作,而无需对每个方案进行硬编码.最大长度为10列.任何帮助表示赞赏.
我只需要复制我的data.frame n次(例如100)并将所有输出保存到列表中.
它应该是非常简单和直接的,但我还没有找到任何解决方案.
假数据框:
df = read.table(text = 'a b
1 2
5 6
4 4
11 78
23 99', header = TRUE)
Run Code Online (Sandbox Code Playgroud) 我有这个元组列表
[(4,'a'), (1,'b'), (2,'c'), (2,'a'), (1,'d'), (4,'e')]
Run Code Online (Sandbox Code Playgroud)
我想得到每个元组的第一个元素,然后复制它以做出以下内容:"aaaabccaadeeee"
我想出了这个代码,但它只给了我第一个元组的复制品.
replicate (fst ( head [(4,'a'), (1,'b')])) ( snd ( head [(4,'a'), (1,'b')]))
--output is: "aaaa"
Run Code Online (Sandbox Code Playgroud)
我正在考虑使用map来获取每个元组的复制,但我没有成功.
众所周知如何迭代perl中的哈希(例如,参见Perl哈希键的最安全的迭代方法是什么?).但是,键和值的顺序是不确定的,实际上每个perl脚本的运行都是不同的.
有没有办法确保相同输入数据上的相同perl脚本的每次运行都会产生相同的迭代顺序?我只关心这种意义上的可复制性 - 秩序不需要被人类预测.
编辑:我在迭代方面提出了问题,但也许它不是哈希的迭代,而是哈希构建过程是非确定性的.我可以设置一些初始化来以确定性和可复制的方式构建哈希吗?
这是我第一次在这里发帖。当我遇到错误(或错误)时,我通常会寻找替代方案,但是,由于我将在 R 中走得更远更深入,所以我很高兴了解正在发生的事情。
我做了一个简单的例子来重现错误:
因此,似乎“手动”, sapply(a,replicate,b) 确实有效。但是,函数内的该表达式会返回错误。我在网上搜索了大约 1 小时,但没有找到类似的东西。
我感谢你的时间,
使用值向量,我希望在函数上调用每个值
values = 1:10
rnorm(100, mean=values, sd=1)
Run Code Online (Sandbox Code Playgroud)
mean = values 重复序列 (1,2,3,4,5,6,7,8,9,10)。我怎样才能得到一个矩阵,每个矩阵有 100 个观察值并使用我的向量中的一个元素?IE:
rnorm(100, mean=1, sd=1)
rnorm(100, mean=2, sd=1)
rnorm(100, mean=3, sd=1)
rnorm(100, mean=4, sd=1)
# ...
Run Code Online (Sandbox Code Playgroud)