我仍然是Scala开发中的菜鸟,但我发现Option [T]概念非常棒,特别是与Some和None一起使用时的模式匹配.我甚至在一个C#项目中实现它,我现在正在努力,但由于没有模式匹配,所以并不是真的那么棒.
真正的问题是,这个对象背后的理论在哪里?这是Scala特有的东西吗?功能语言?哪里可以找到更多相关信息?
此代码在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#已经进行了运行时检查,以检测对静态成员的第一次访问.为什么不将它扩展到每个成员的东西并让它们按需运行,甚至更好的让编译器在编译时弄清楚顺序?
顺便说一句:我认为同样的问题(或几乎相同)也适用于非静态成员.
我知道这与编程没有直接关系,但我想知道是否有人知道如何将泵浦引理应用于以下证明:
证明L = {(a ^ n)(b ^ n)(c ^ m):n!= m}不是无上下文语言
我对使用抽吸引理非常有信心,但这个真的让我感到厌烦.你怎么看?
是否有一个库(在任何语言中)可以搜索矩阵中的模式,如正则表达式适用于字符串?像矩阵的常规表达式,或任何矩阵模式搜索方法?
我读过的大多数编程书都有以下几行:
"X语言不支持真正的多维数组,但你可以用数组数组模拟(近似)它们."
由于我的大部分经验都是基于C语言,即C++,Java,JavaScript,php等,我不确定"真正的"多维数组是什么.
真正的多维数组的定义是什么以及支持它的语言是什么?另外,如果可能的话,请在代码中显示一个真正的多维数组的示例.
language-agnostic language-theory jagged-arrays multidimensional-array
这个问题的第一部分现在是它自己的,在这里:分析Accents的文本
问题:如何在生成的语音中添加重音符号?
我想出了什么:
我并不仅仅意味着重音符号或变形,或者像这样的任何单数.我的意思是完整的英国口音,或苏格兰口音,或俄罗斯等.
我认为这也可以在语言之外完成.例如:俄语中的东西可以用英国口音产生,或者普通话中的东西可以带有俄语口音.
我认为基本过程是这样的:
这实际上更像是一个普通的DSP问题,但我想提出一个编程算法来做这个而不是一般的想法.
algorithm audio language-theory signal-processing text-to-speech
我在理论课上讨论这个问题,我很好奇这里有多少人知道正则表达式编译实际上是什么.我在网上看过,在我看来,这是一个我认为是更古老的话题.
所以是的,在阅读这个问题之前,谁知道通过将正则表达式转换为epsilon-nondeterministic有限自动机来执行正则表达式编译?谁不知道那是什么?
我正在尝试理解上下文敏感的语法,我理解为什么语言会像
- {ww | w是一个字符串}
- {a n b n c n | a,b,c是符号}
不是上下文,但我想知道一个类似于无类型lambda演算的语言是否与上下文相关.我想看一个简单但非玩具的例子(我考虑上面的玩具示例),一个上下文敏感语法的例子,对某些生产规则,例如,告诉一些符号串是否可以目前处于范围内(例如,在生成函数体时).上下文敏感语法是否足够强大,可以使未定义/未声明/未绑定的变量成为语法(而不是语义)错误?
grammar language-theory automata computation-theory context-sensitive-grammar
我喜欢阅读有关编程理论的内容,所以你能告诉我是否有任何面向对象的静态类型语言允许变量有几种类型?pesudocode中的示例:
var value: BigInteger | Double | Nil
Run Code Online (Sandbox Code Playgroud)
我想到了在这个对象上调用方法的方法.如果对象值的类型为BigInteger | 双语言可以让用户只能拨打共享方法(湖加,减),但是当该类型的BigInteger | 双| Nil然后Nil的对象没有方法加减,所以我们不能对这个对象做任何有用的事情,因为它只有很少的共享方法(比如toString).
那么有什么想法应该如何在静态类型面向对象语言中使用少量类型调用变量上的方法?
theory programming-languages language-theory language-design
前段时间在一个Haskell扩展中(找不到链接),最近在Ur中我发现名称(例如记录字段)形成了一种.有人可以解释为什么类型抽象对他们来说还不够吗?
haskell type-systems functional-programming language-theory higher-kinded-types
language-theory ×10
algorithm ×2
automata ×2
regex ×2
theory ×2
audio ×1
c# ×1
collections ×1
grammar ×1
haskell ×1
matrix ×1
proof ×1
scala ×1
styles ×1
type-systems ×1