最近我正在学习Racket,我在理解“define-type”语法方面遇到了一些困难。我尝试过以下代码:
<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script>
var source = new EventSource("/progress");
source.onmessage = function(event) {
$('.progress-bar').css('width', event.data+'%').attr('aria-valuenow', event.data);
if (event.data >=100) {
source.close();
window.location = "http://127.0.0.1:5000/done"
}
}
</script>
</head>
<body>
<div class="progress" style="width: 50%; margin: 50px;">
<div class="progress-bar progress-bar-striped active" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%">
</div>
</div>
</body>
</html>
但它输出以下错误消息:
#lang racket
(define-type Num Number)
愿任何人帮我处理这个错误吗?我已经阅读了所有可能的文档,看起来它应该正常工作。
答案 0 :(得分:4)
每个Racket程序都有一个以#lang
开头的行开头的原因:Racket不仅仅是一种编程语言,而是一种编程语言的生态系统。每个文件(更具体地说,每个模块)都可以使用自己的编程语言,并且可以轻松地相互通信。
默认情况下,Dr。Racket会在顶部创建一个#lang racket
行的新文件。这是“球拍语言”,但它不是“球拍系统”提供的唯一语言,实际上包括几十种语言,有些语言与#lang racket
差别不大,其他几乎完全不相关。
如果您想使用Typed Racket,您需要选择使用该语言而不是普通的#lang racket
,它是动态输入的。您可以在程序顶部写下#lang typed/racket
来完成此操作。
#lang typed/racket
(define-type Num Number)
现在,在该模块中,您可以使用Typed Racket的所有功能。