此命令列出当前路径中的目录: ls -d */
这个模式究竟做了*/什么?
我们如何在上面的命令(例如ls -d /home/alice/Documents)中给出绝对路径以仅列出该路径中的目录?
考虑一个单链表.它看起来像
data List x = Node x (List x) | End
Run Code Online (Sandbox Code Playgroud)
定义折叠函数是很自然的
reduce :: (x -> y -> y) -> y -> List x -> y
Run Code Online (Sandbox Code Playgroud)
从某种意义上说,reduce f x0替代每一个Node有f一位End用x0.这就是Prelude所说的折叠.
现在考虑一个简单的二叉树:
data Tree x = Leaf x | Branch (Tree x) (Tree x)
Run Code Online (Sandbox Code Playgroud)
定义诸如的函数同样很自然
reduce :: (y -> y -> y) -> (x -> y) -> Tree x -> y
Run Code Online (Sandbox Code Playgroud)
请注意,这种减少具有完全不同的特征; 而基于列表的一个本质上是顺序的,这个新的基于树的一个具有更多的分而治之的感觉.你甚至可以想象par在那里扔几个组合器.(你会在列表版本中放置这样的东西?)
我的问题:这个功能是否仍被归类为"折叠",还是其他东西?(如果是的话,它是什么?)
基本上每当有人谈论折叠时,他们总是谈论折叠列表 …
我见过人们为各种懒惰的IO相关任务推荐管道/管道库.这些库到底解决了什么问题?
此外,当我尝试使用一些与hackage相关的库时,很可能有三个不同的版本.例:
这让我很困惑.对于我的解析任务,我应该使用attoparsec或pipes-attoparsec/attoparsec-conduit?与普通香草attoparsec相比,管道/导管版本给我带来了什么好处?
我有一个像这样的字符串:
val a = "some random test message"
Run Code Online (Sandbox Code Playgroud)
我有一个这样的列表:
val keys = List("hi","random","test")
Run Code Online (Sandbox Code Playgroud)
现在,我想检查字符串是否a包含任何值keys.我们如何使用Scala的内置库函数来完成这项工作?
(我知道拆分a到List 的方式,然后用keyslist 进行检查,然后找到解决方案.但我正在寻找一种更简单地使用标准库函数解决它的方法.)
编译好:
type List a = [a]
Run Code Online (Sandbox Code Playgroud)
但是当我引入类约束时,编译器要求RankNTypes包括:
type List2 a = Num a => [a]
Run Code Online (Sandbox Code Playgroud)
包含该扩展后,它编译得很好.为什么编译代码需要扩展名?
编辑:为什么我首先需要约束?
我检查这个镜头类型(type RefF a b = Functor f => (b -> f b) -> (a -> f a)从)这个职位,并发现它实际需要的RankNTypes,因为的Functor约束.
为什么以下代码不打印任何内容:
#!/usr/bin/python3
class test:
def do_someting(self,value):
print(value)
return value
def fun1(self):
map(self.do_someting,range(10))
if __name__=="__main__":
t = test()
t.fun1()
Run Code Online (Sandbox Code Playgroud)
我正在Python 3中执行上面的代码.我想我错过了一些非常基本但却无法解决的问题.
haskell ×7
attoparsec ×1
bash ×1
conduit ×1
directory ×1
fold ×1
haskell-lens ×1
list ×1
ls ×1
map-function ×1
monads ×1
parsec ×1
pipe ×1
python ×1
python-3.x ×1
scala ×1
string ×1
terminology ×1