题目
给定两个字符串S和W,长度分别是N和M。实现一个算法判断W是否在S中出现,如果是则返回W在S中的开始位置,否则返回-1。
给定两个字符串S和W,长度分别是N和M。实现一个算法判断W是否在S中出现,如果是则返回W在S中的开始位置,否则返回-1。
对于线性数据结构(Array、Linked List、Queues、Stacks等),一般只能通过一种逻辑方式来进行遍历,但是树比较不同,我们可以用不同的方式遍历:
Martin Kuppe曾经绘制了一幅数学的景观图,在这幅图中,数学的分支分布在大陆的各个地方。在这其中有一个高高悬浮的月亮,它提供了一望无际的地形,使我们能够看到各个领域之间的关系,这些关系在地面上可能是无法察觉的,这证明数学中看似不相关的领域其实也不是那么不同。而这个强大的月亮就是Category Theory(范畴论)。
在函数式编程基础[一]–范畴论和Functor 中,我们了解了什么是Category和Functors,现在我们继续往下看Applicative Functor。
先快速回顾一下Functor,我们知道Maybe Functor可以帮我们实现下面的运算:
|
|
但是我们如何计算两个Maybe值的和呢?比如 Just(3) + Just(2)
. 这就是Applicative要帮我们解决的问题。