小编Max*_*Max的帖子

有关字符串算法的书籍

字符串算法上有很多帖子:

但是,没有提到一般文献.

任何人都可以推荐一本能彻底探索各种字符串算法的书吗?特别感兴趣的主题是近似字符串匹配[像谷歌提供的纠正搜索字符串变体:)].

非常感谢您的建议.

algorithm string-algorithm

7
推荐指数
1
解决办法
3871
查看次数

关于"JavaScript - 好零件"示例的说明(第4.15节)?

JS中的初学者需要解释Crockford的书中的代码片段4.15节:

var memoizer = function (memo, fundamental) {
    var shell = function (n) {
        var result = memo[n];
        if (typeof result !== 'number') {
            result = fundamental(shell, n);
            memo[n] = result;
        }
        return result;
    };
    return shell;
};

var fibonacci = memoizer([0, 1], function (shell, n) {
    return shell(n - 1) + shell(n - 2);
});
Run Code Online (Sandbox Code Playgroud)

问题:我们如何计算斐波那契(15),如果它是简单的斐波纳契(15)调用,那它的工作原理如何?

感谢帮助.

javascript memoization

7
推荐指数
1
解决办法
1642
查看次数

Thread.yield()之后线程的Thread.State是什么?

Thread.State之后的一个帖子是什么Thread.yield()?是一个Thread.State.WAITING吗?谢谢.

java concurrency

6
推荐指数
1
解决办法
1064
查看次数

Git注意到细节

我读过这个这个,但仍然认为他们是晦涩难懂.到目前为止了解:

  • 创作(git notes add -m "a note")
  • 注释是命名空间

问题:

  1. 注意似乎没有创建一个提交,所以push(例子)如何可能为他们?它下面的机制是什么?如果不是提交,概念上添加什么?
  2. 我在哪里可以看到我push在Github UI上的'ed笔记?
  3. Github 提交评论之间是否存在任何关系?
  4. 如果Github评论注释我如何获取它们并在我的本地comp上看到它们git log
  5. 如果Github评论不是笔记,它们是什么,是否可以获取它们?
  6. 笔记是否合并?怎么样?
  7. 编辑的笔记是否有任何解决冲突的警告?
  8. 有没有其他问题/困难与笔记?

谢谢

git git-notes

6
推荐指数
1
解决办法
2808
查看次数

实践中的 Java 并发 - 清单 14.9 解释?

很少有 JCIP 的列表出现在这里。这里还有一个(原始代码):

公共类线程门{
    私有布尔值 isOpen;
    私有整数代;

    公共同步无效关闭(){
        isOpen = false;
    }

    公共同步无效打开(){
        ++代;
        isOpen = true;
        通知所有();
    }

    公共同步无效等待()抛出 InterruptedException {
        int到达世代=世代;
        而 (!isOpen && 到达世代 == 世代) {
            等待();
        }
    }
}

书评:

await 使用的条件谓词比简单地测试 isOpen 更复杂。这是必要的,因为如果在门打开时 N 个线程正在等待,它们都应该被允许继续。但是,如果门快速连续地打开和关闭,如果 await 只检查 isOpen,则可能不会释放所有线程:当所有线程收到通知、重新获取锁并从等待中退出时,门可能再次关闭. 所以 ThreadGate 使用了一个稍微复杂一些的条件谓词:每次门关闭时,“生成”计数器都会增加,如果门现在打开或者自从这个线程到达门之后门已经打开,线程可能会通过 await .

伙计们,你可能会笑,但我无法理解:)。问题:

  1. arrivalGeneration == generation根据线程 T1、T2...和执行流程向我解释使用。
  2. 为什么段落说every time the gate is closed, a generation counter is incremented?它是怎么发生的?

感谢大家!

java concurrency

5
推荐指数
1
解决办法
731
查看次数

从"Scala in Action"中输入投影示例(第8章)

任何人都可以帮助我从书中下面的代码位?

trait Mapper[F[_]] {
  def fmap[A, B](xs: F[A], f: A => B): F[B]   
}

def VectorMapper = new Mapper[Vector] {
  def fmap[A, B](xs: Vector[A], f: A => B): Vector[B] = xs map f 
}
Run Code Online (Sandbox Code Playgroud)

这很简单:特性定义使用更高级的类型F[_]用于任何"类容器"类型,然后用于具体的映射器Vector.

然后是一个棘手的部分.映射器Either.据我所知{type E[A] = Either[X, A]},正如一个代码块,和({type E[A] = Either[X, A]})#E作为投影这需要该类型的别名E出的代码匿名块的和由作者"隐藏"的存在X对于Mapper因为性状上单一类型的参数"的容器类型"操作性状只- 我们感兴趣A,即Right.

def EitherMapper[X] = new Mapper[({type E[A] = Either[X, A]})#E ] {
    def fmap[A, B](r: Either[X, …
Run Code Online (Sandbox Code Playgroud)

types scala

5
推荐指数
1
解决办法
197
查看次数

Blackheath 的《函数式反应式编程》一书,2.6.3 节澄清

本节讲述FRP 流处理中的合并操作(使用Sodium 库)。本书展示了流组合的下图,并表示当事件通过流进入 FRP 逻辑时,它会导致在事务上下文中发生级联状态更改,因此所有更改都是原子的。

\n\n

\n\n

事件流 - sDeselectsSelect(参见 2 个事件:“+”和“-”)源自 UI 控件,因为它们发生在同一个 FRP 事务中,因此它们携带的事件被认为是同时发生的。然后书上说

\n\n
\n

合并实现必须将事件存储在临时存储中\n, 直到它知道\xe2\x80\x99 不再接收任何输入为止。然后它输出一个事件:如果它收到多个事件,则它使用提供的函数将它们组合起来;否则,它输出它收到的一个事件。

\n
\n\n

问:什么时候是“不再有输入”的时候?merge 函数如何知道此时此刻?这只是它从给定图表上的第二个传入流获取值的时间还是我缺少什么?您能用更好的流示例来说明它吗?

\n

functional-programming frp sodiumfrp

5
推荐指数
1
解决办法
153
查看次数

Scala 中的类型 - 下界

在下面的代码上。

我的期望是它T必须是 a 类型Bor A,因此调用lowerBound(new D)可能不应该编译(?)。类似的上限实验给了我预期的类型检查错误。

谢谢你的提示。

object varianceCheck {
  class A {
    override def toString = this.getClass.getCanonicalName
  }

  class B extends A
  class C extends B
  class D extends C

  def lowerBound[T >: B](param: T) = { param }

  println(lowerBound(new D))                      //> varianceCheck.D
}
Run Code Online (Sandbox Code Playgroud)

generics scala type-bounds

3
推荐指数
1
解决办法
1034
查看次数

AWS Cognito 资源服务器标识符和范围 资源服务器带来

我读过文档并看到了这个。努力将 Cognito + API GW + OAuth2 组合在一起。我的问题:

  1. 我是否正确理解资源服务器范围的流程和使用:客户端应用程序向 Cognito 用户池请求 JWT 令牌(发生登录/授权)。令牌请求包含自定义范围 A,以便 Cognito 返回 JWT 访问令牌。之后,客户端应用程序使用获得的令牌对“资源服务器”(例如我们配置的 API GW 端点)进行 REST API 调用。API GW端点设置为使用我们的Cognito用户池作为授权者+范围设置为自定义范围A。因此这里的范围就像“角色”或“权限”:如果客户端有一个有效的JWT令牌+此令牌有一个自定义范围 内部 + API GW 端点设置为使用该范围 - 然后客户端应用程序被授权调用 API GW 端点。实际上,它的作用就像端点的“基于资源的 IAM 策略”,但这里不涉及 IAM。
  2. 我是否正确理解AWS Cognito 资源服务器标识符是任意字符串?它不是实际“资源服务器”(我们的 API GW)的 URI。URI 格式纯粹用于唯一性,并且在流程中没有 Cognito 资源服务器标识符重要或以某种方式检查/验证的地方?另外,资源服务器标识符似乎不会影响 JWT 令牌生成或令牌内容?

谢谢你的澄清。

scopes oauth-2.0 amazon-cognito

3
推荐指数
1
解决办法
4257
查看次数

在普通 Scala 3 中表达任意数量的函数

尝试掌握 Scala 3 类型系统。问题:

  • 是否可以编写一个def curry(f: ???) = ...接受f任意数量并返回柯里化 fn 的通用函数?没有编译器插件,没有外部花哨的库,只是用普通 Scala 3 表达的 N 元函数?
  • 我看一下这个 Haskell 示例https://riptutorial.com/haskell/example/18470/an-n-arity-curry,它的功能类似于所需的功能。

(这个问题的目的不是使用任何外部库 - 目的是学习使用 Scala 3 作为工具的函数式编程概念。有一种感觉,这可能与将 args 作为元组处理或将 fn 转换为元组 fn 相关?我觉得 fn args 和元组的概念之间存在一些对称性?)

scala currying variadic-functions scala-3

3
推荐指数
1
解决办法
296
查看次数

适用函子。<*>和<$>的类型签名详细

我们有签名:

(<$>) :: Functor f     =>   (a -> b) -> f a -> f b
(<*>) :: Applicative f => f (a -> b) -> f a -> f b 
Run Code Online (Sandbox Code Playgroud)

让我们玩一下:

(/)  <$> Just 5       <*> Just 2
=> Just 2.5

((/) <$> Just 5     ) <*> Just 2
=> Just 2.5

( Just (\x -> 5/x ) ) <*> Just 2
=> Just 2.5
Run Code Online (Sandbox Code Playgroud)

题:

((/) <$> Just 5) <*> Just 2
^^^^^^^^^^^^^^^^     @@@@@@

(<$>) :: Functor f     => …
Run Code Online (Sandbox Code Playgroud)

haskell applicative

2
推荐指数
1
解决办法
77
查看次数