在范畴论中可以证明恒等函数是唯一的。也有人说,用参数推理,该类型forall a. a -> a只有一个居民。在 Haskell 中,虽然我可以想到更多的身份函数实现:
id x = x
id x = fst (x, "useless")
id x = head [x]
id x = (\x -> x) x
id x = (\x -> (\x -> x) x) x
Run Code Online (Sandbox Code Playgroud)
forall a. a -> a当有多个实现时,如何理解“标识函数是唯一的”和“任何具有类型的函数只有一个居民”这句话?
我想使用OscillatorNodes来演奏和弦:
var ac = new (window.AudioContext || window.webkitAudioContext);
// C4, E4, G4
var freqs = [261.63, 329.63, 392.00];
for(var i=0;i<freqs.length;i++) {
var o = ac.createOscillator();
o.frequency.value = freqs[i];
o.connect(ac.destination);
o.noteOn(0);
setTimeout(function() {o.noteOff(0)}, 1000);
}
Run Code Online (Sandbox Code Playgroud)
但这种方法听起来像一团糟(这听起来像是这样).如果我尝试为和弦中的每个音符创建新的AudioContexts,那么听起来不错(就像这样):
// C4, E4, G4
var freqs = [261.63, 329.63, 392.00];
for(var i=0;i<freqs.length;i++) {
var ac = new (window.AudioContext || window.webkitAudioContext);
var o = ac.createOscillator();
o.frequency.value = freqs[i];
o.connect(ac.destination);
o.noteOn(0);
setTimeout(function() {o.noteOff(0)}, 1000);
}
Run Code Online (Sandbox Code Playgroud)
但我读到你只应该有一个AudioContext.我究竟做错了什么?
在具有依赖类型的语言中,您可以使用 Type-in-Type 来简化语言并赋予它很多功能。这使得语言在逻辑上不一致,但如果您只对编程感兴趣而不对定理证明感兴趣,这可能不是问题。
在Cayenne论文(一种用于编程的依赖类型语言)中提到了 Type-in-Type,“未分层的类型系统将使在类型检查期间无法确定表达式对应于类型还是实值,并且不可能在运行时删除类型”(第 2.4 节)。
我对此有两个问题:
KindwhereType : Kind和将层次结构扩展一个额外的步骤Kind : Kind。这仍然不一致,但现在您似乎可以知道术语是类型还是值。这样对吗?我刚开始学习J,我试图创建一个函数来检查数字是否为素数.
<./<./13|*/~(2}.i.)13
Run Code Online (Sandbox Code Playgroud)
这将检查13是否为素数并返回1.
<./<./10|*/~(2}.i.)10
Run Code Online (Sandbox Code Playgroud)
这将返回0.
所以我的问题是:我如何制作一个功能呢?我如何指定参数?
prime(x) =: <./<./x|*/~(2}.i.)x
Run Code Online (Sandbox Code Playgroud)
这当然是行不通的.但是如何在J中创建此功能?
PS.我知道这个功能对2不起作用,我稍后再处理:D
1 0 0 1 verb 1 2 3 4
result:1 4
Run Code Online (Sandbox Code Playgroud)
动词从右侧列表中删除左侧列表中为0的项目.我记得在词汇表中看到这个动词但我再也找不到了.有人知道这个动词吗?
众所周知,带有 kind 的类型构造函数Type -> Type(在系统 F-omega 中)仅Functor当它实现了 function 时才是 a (a -> b) -> f a -> f b。虽然这是一个无法无天的函子,但它也应该遵守函子法则(保留组成和同一性)。因此类型构造函数Type -> Type并不总是函子。但这仅涉及类型范畴中的协变内函子。还有逆变函子和更多种类的函子。
我的问题:任何类型构造函数/函数是否具有Type -> Type某种(类别理论)合法函子(协变、逆变或其他类型)?
function ×2
haskell ×2
j ×2
api ×1
boolean ×1
javascript ×1
list ×1
numbers ×1
primes ×1
type-theory ×1