问题标签 [language-theory]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
82 浏览

math - 证明语言属性

我正在学习关于编程的正式基础的课程,我们所涵盖的一件事是证明语言的某些属性,我已经完成了大部分工作,但是我被这两个问题所困扰,因为我不知道如何证明他们。

它们如下:

A ^ (B ^ C) = (A ^ B) ^ C (我相信这是关联规则)

A ^ (BUC) = (A ^ B) U ( A ^ C) (分配规则)

在这些示例中,我使用 ^ 来表示连接

0 投票
2 回答
710 浏览

java - 语言理论 - 循环不变量 - 前/后条件

我正在为语言理论考试做修订作业。我们可以做的一些练习包括为几种方法编写前置条件和后置条件以及循环不变量。

我已经完成了一个,并且认为它非常好(如果不是,请告诉我:P),下一个应该是相似的,但是有一个简单的方法来解决它。

我计算出 pre/pos + loop inv 是:

我需要对这些(非常)相似的方法做同样的事情:

1.

2.

3.

4.

所以基本上我在问,我的第一部分是否正确(顶部的前/后/循环),如果是这样,这四个如何变化(似乎并不多)。

提前感谢您的帮助。

[编辑]

已尝试 Q1(质量不确定)

0 投票
4 回答
2152 浏览

language-agnostic - “真正的”多维数组的定义是什么,哪些语言支持它们?

我读过的大多数编程书籍都有以下内容:

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

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

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

0 投票
4 回答
265 浏览

performance - 函数的有效表示

函数类型 A -> B 在某种意义上不是很好。尽管函数是一流的值,但由于效率问题,人们往往不能自由地操作它们。你不能应用太多的转换 (A -> B) -> (C -> D),在某些时候你必须计算一个值。

显然,这是由于 -> 的非严格性质。

处理 Double -> Double 类型的函数有很多众所周知的技巧。可以将它们表示为给定特定基础的向量,该基础可以由三角函数、多项式等组成。

是否有任何通用技巧来解决 A -> B 类型的低效率问题?

或替代 -> ?

0 投票
3 回答
627 浏览

scala - Scala 中的 Option[T] 是从哪里来的?

我仍然是 Scala 开发的菜鸟,但我发现Option[T]概念真的很棒,特别是与 Some 和 None 一起使用时的模式匹配。我什至在某种程度上在我正在处理的 C# 项目中实现它,但是由于没有模式匹配,所以并不是那么棒。

真正的问题是,这个物体背后的理论在哪里?它是 Scala 特有的吗?功能语言?我在哪里可以找到更多关于它的信息?

0 投票
3 回答
563 浏览

exception - 封装和异常

我正在设计我自己的 OO 语言,并且一直很开心,直到遇到异常。在我看来,异常打破了封装。

例如,如果 A 类有 B 类的对象,B 有 C,C 有 X,这会向 A 抛出异常,那么 A 中的代码不仅要知道 X,还要知道 B 和 C 才能正确处理。您可以这样说,因为如果您将 C 替换为 D,则必须更改异常的处理程序以从调用堆栈中提取相关信息。

我能想到的解决此问题的唯一方法是将异常作为类 API 的一部分,以便它们一次向调用堆栈传播一个调用者。他们应该以自己的方式重新中断异常。

这是一个例子。Trend 是一个用于分析统计趋势的类,它有一种方法,斜率,用于从两点计算直线的斜率。

有一个更好的方法吗?

0 投票
2 回答
1931 浏览

algorithm - 为语音生成添加口音

这个问题的第一部分现在是它自己的,在这里:Analyzing Text for Accents

问题:如何将口音添加到生成的语音中?

我想出了什么:

我指的不仅仅是重音符号,或屈折变化,或任何类似的单数。我的意思是完整的英国口音、苏格兰口音或俄罗斯口音等。

我认为这也可以在语言之外完成。例如:俄语中的某些内容可能带有英国口音,或者普通话中的某些内容可能带有俄罗斯口音。

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

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

这实际上更像是一个一般的 DSP 问题,但我想提出一个程序算法来做到这一点,而不是一个一般的想法。

0 投票
0 回答
209 浏览

audio - 分析重音文本

这是我的另一个问题的第一部分,该问题建议提出两个问题:为语音生成添加口音

摘要:另一个问题询问如何以编程方式向生成的语音添加口音。不是重音符号或变形,而是完整的口音,如英国、苏格兰或俄罗斯的口音。

第一个问题(与这个问题相同)询问如何分析原始文本以确定需要添加哪些重音以及在何处添加。

基本上,如何分析文本以找到这些口音并生成一组可用于将任何口音添加到任何生成的语音的指令?

0 投票
2 回答
223 浏览

python - VBA 中的表达式语句

我最近试图编写一个 Excel 宏,我需要确定是否存在特定的工作表。我选择编写脚本的武器是 Python,而我的 VBA 技能确实很差。因此,以良好的 Pythonic 风格,我采用了比许可更容易请求宽恕的方法,并写了如下内容:

在我试图消除打印语句之前,这很有效。我将第一行更改为:

突然我开始收到“对象不支持此属性或方法”错误。作为一名 Python 程序员,这让我感到惊讶,我一直在 Python 中做类似的事情。

我很好奇,所以我做了一点阅读。我能够在 Python 中找到关于上述表达式语句的文档,但在 VBA 中找不到。VBA中根本不允许表达式语句吗?如果是这样,他们不这样做有什么原因吗?有谁知道我在哪里可以读到这个?

0 投票
2 回答
199 浏览

haskell - 为什么名称形成一种而不只是一种类型?

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