小编use*_*050的帖子

在没有输入变量的情况下在Haskell中实现递归

因此我对编程仍然很新,而且我在使用Haskell的语法时遇到了很多困难.我知道我想要实现什么,但我不确定该怎么做,所以我来这里问.

所以我所拥有的是由"3个不同的函数"定义的没有特定顺序的"堆积"数字.一个例子是:

lowestnumber = 4
highestnumber 5 = True
highestnumber _ = False
above 4 = 11
above 11 = 18
above 18 = 2
above 2  = 3
above 3  = 5
above 5  = error "highest Number"
above _ = error "Not part of the pile"
Run Code Online (Sandbox Code Playgroud)

现在,我想编写一个函数来检查某个数字是否是这一堆的一部分,另一个函数"sum'=",它总结了列表中没有输入变量的所有元素.首先,我通过定义一个列表并使用list命令来解决这些问题,以便总结并查看elem该列表中是否有某些东西,但我应该在不使用列表的情况下解决它.

所以我有如何解决这个问题的想法,但我不知道如何在没有收到无数错误的情况下实际编写它.我尝试过检查功能的一些例子:

check x = if above x /= error "Not part of the stack" || lowestnumber == x then True else False
Run Code Online (Sandbox Code Playgroud)

我也尝试过这样的"_"检查,但它也不起作用:

check x if above x == …
Run Code Online (Sandbox Code Playgroud)

recursion haskell

4
推荐指数
2
解决办法
526
查看次数

用列表中的字符串替换字符串

我正在尝试编写一个函数,该函数包含一个搜索词列表,一个替换词列表和一个将使用这些词的字符串.

listReplace :: [String] -> [String] -> String -> String
Run Code Online (Sandbox Code Playgroud)

棘手的部分是如果拟合搜索词是第n个,那么应该使用第n个替换词.此外,当使用替换词时,如果它本身实际上是一个搜索词,则不应该用不同的替换词替换它.我已经写过这些函数了

replace :: String -> String -> String -> String:
replace x y [] = []
replace x y (z:zs) = if isPrefixOf x (z:zs) then y ++ replace x y (drop (length x) (z:zs)) else z: (replace x y zs)
Run Code Online (Sandbox Code Playgroud)

replace' :: String -> [String] -> String -> String:
replace' x y [] = []
replace' x [] (z:zs) = []
replace' x y (z:zs) = if isPrefixOf …
Run Code Online (Sandbox Code Playgroud)

string haskell replace list

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

Stata嵌套的foreach循环子串比较

我刚刚开始学习Stata,我很难过.我的问题是:我有两个不同的变量,ATC并且A,其中A可能是子串ATC.现在我想,以纪念所有的意见中,A是的一个子ATCOK = 1.

我使用一个简单的嵌套循环尝试了这个:

foreach x in ATC {
foreach j in A {
        replace OK = 1 if strpos(`x',`j')!=0
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,每当我运行此循环时,即使应该有足够的数据,也不会进行任何更改.我觉得我应该给出一个索引来指定哪个OK被更改(属于ATC/ x的那个),但我不知道如何做到这一点.这可能非常简单,但我已经挣扎了一段时间.


我应该澄清一下:我的A列表与主列表分开(只是附加到它),并且只包含我用来识别ATC我想要的s的唯一键.所以我有~120个A键和几百万个ATC键.我想要做的是迭代每个ATC单键的每个A键,并标记那些ATC具有A该限定条件的键.

这意味着我没有的(完整的元组ATC,A,OK),但不同的大小,而不是单独的列表.例如:我有

ATC    OK  A 
ABCD   0   .
EFGH   0   .
...   ...  ...
.     . …
Run Code Online (Sandbox Code Playgroud)

foreach loops nested substring stata

0
推荐指数
1
解决办法
633
查看次数

标签 统计

haskell ×2

foreach ×1

list ×1

loops ×1

nested ×1

recursion ×1

replace ×1

stata ×1

string ×1

substring ×1