标签: language-theory

Option [T]来自Scala的哪里?

我仍然是Scala开发中的菜鸟,但我发现Option [T]概念非常棒,特别是与Some和None一起使用时的模式匹配.我甚至在一个C#项目中实现它,我现在正在努力,但由于没有模式匹配,所以并不是真的那么棒.

真正的问题是,这个对象背后的理论在哪里?这是Scala特有的东西吗?功能语言?哪里可以找到更多相关信息?

collections styles scala language-theory

9
推荐指数
3
解决办法
621
查看次数

为什么C#中的命令对静态初始化很重要?

此代码在C#中具有明确定义的行为:

class Foo
{
    static List<int> to = new List<int>( from ); // from is still null
    static IEnumerable<int> from = Something();
}
Run Code Online (Sandbox Code Playgroud)

注意:我不是问如何修复该代码,因为我已经知道如何做到这一点

这有什么理由?C#已经进行了运行时检查,以检测对静态成员的第一次访问.为什么不将它扩展到每个成员的东西并让它们按需运行,甚至更好的让编译器在编译时弄清楚顺序?

顺便说一句:我认为同样的问题(或几乎相同)也适用于非静态成员.

c# language-theory

8
推荐指数
2
解决办法
2723
查看次数

上下文自由语言问题(抽取引理)

我知道这与编程没有直接关系,但我想知道是否有人知道如何将泵浦引理应用于以下证明:

证明L = {(a ^ n)(b ^ n)(c ^ m):n!= m}不是无上下文语言

我对使用抽吸引理非常有信心,但这个真的让我感到厌烦.你怎么看?

theory language-theory automata proof

8
推荐指数
1
解决办法
2356
查看次数

用于矩阵模式搜索的类似regexp的库

是否有一个库(在任何语言中)可以搜索矩阵中的模式,如正则表达式适用于字符串?像矩阵的常规表达式,或任何矩阵模式搜索方法?

regex algorithm language-theory matrix

8
推荐指数
1
解决办法
355
查看次数

"真正的"多维数组的定义是什么,哪些语言支持它们?

我读过的大多数编程书都有以下几行:

"X语言不支持真正的多维数组,但你可以用数组数组模拟(近似)它们."

由于我的大部分经验都是基于C语言,即C++,Java,JavaScript,php等,我不确定"真正的"多维数组是什么.

真正的多维数组的定义是什么以及支持它的语言是什么?另外,如果可能的话,请在代码中显示一个真正的多维数组的示例.

language-agnostic language-theory jagged-arrays multidimensional-array

8
推荐指数
1
解决办法
1556
查看次数

在语音生成中添加重音

这个问题的第一部分现在是它自己的,在这里:分析Accents的文本

问题:如何在生成的语音中添加重音符号?

我想出了什么:

我并不仅仅意味着重音符号或变形,或者像这样的任何单数.我的意思是完整的英国口音,或苏格兰口音,或俄罗斯等.

我认为这也可以在语言之外完成.例如:俄语中的东西可以用英国口音产生,或者普通话中的东西可以带有俄语口音.

我认为基本过程是这样的:

  1. 分析文字
    • 与数据库(或类似的东西)比较,以确定需要重音的内容,应该有多强,等等.
  2. 以指定语言生成语音
    • 使用普通的文本到语音处理器很容易.
  3. 根据分析的文本确定指定的重音.
    • 这是有问题的部分.
    • 我认为一系列振幅和滤波器最适合下一步.
  4. 网格语音和口音.
    • 这将是一件容易的事.
    • 它可以通过将语音乘以重音来完成,就像许多其他DSP方法一样.

这实际上更像是一个普通的DSP问题,但我想提出一个编程算法来做这个而不是一般的想法.

algorithm audio language-theory signal-processing text-to-speech

8
推荐指数
1
解决办法
1485
查看次数

出于好奇,这里有多少人知道如何编译正则表达式?

我在理论课上讨论这个问题,我很好奇这里有多少人知道正则表达式编译实际上什么.我在网上看过,在我看来,这是一个我认为是更古老的话题.

所以是的,在阅读这个问题之前,谁知道通过将正则表达式转换为epsilon-nondeterministic有限自动机来执行正则表达式编译?谁不知道那是什么?

regex language-theory

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

有人可以给出一个简单但非玩具的上下文敏感语法示例吗?

我正在尝试理解上下文敏感的语法,我理解为什么语言会像

  1. {ww | w是一个字符串}
  2. {a n b n c n | a,b,c是符号}

不是上下文,但我想知道一个类似于无类型lambda演算的语言是否与上下文相关.我想看一个简单但非玩具的例子(我考虑上面的玩具示例),一个上下文敏感语法的例子,对某些生产规则,例如,告诉一些符号串是否可以目前处于范围内(例如,在生成函数体时).上下文敏感语法是否足够强大,可以使未定义/未声明/未绑定的变量成为语法(而不是语义)错误?

grammar language-theory automata computation-theory context-sensitive-grammar

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

是否有任何面向对象的静态类型语言,其中包含少量类型的变量?

我喜欢阅读有关编程理论的内容,所以你能告诉我是否有任何面向对象的静态类型语言允许变量有几种类型?pesudocode中的示例:

var value: BigInteger | Double | Nil
Run Code Online (Sandbox Code Playgroud)

我想到了在这个对象上调用方法的方法.如果对象值的类型为BigInteger | 双语言可以让用户只能拨打共享方法(湖加,减),但是当该类型的BigInteger | 双| Nil然后Nil的对象没有方法加减,所以我们不能对这个对象做任何有用的事情,因为它只有很少的共享方法(比如toString).

那么有什么想法应该如何在静态类型面向对象语言中使用少量类型调用变量上的方法?

theory programming-languages language-theory language-design

5
推荐指数
3
解决办法
444
查看次数

为什么名字形成一种而不仅仅是一种类型?

前段时间在一个Haskell扩展中(找不到链接),最近在Ur中我发现名称(例如记录字段)形成了一种.有人可以解释为什么类型抽象对他们来说还不够吗?

haskell type-systems functional-programming language-theory higher-kinded-types

5
推荐指数
2
解决办法
191
查看次数