Concept: Type Checking

There is no static type checking in Scheme; type checking is done at run time.

There is unfortunately little agreement about many of the terms which are associated with type checking: so I'll give you the definitions we'll use in class, while pointing out some of the other interpretations.

Type safe
Type safe means that the language guarantees that one type can't be incorrectly used in place of another type, in other words, that all expressions are guaranteed to be type consistent. This can be done checked statically, dynamically, or a mixture. Scheme, Ada, Smalltalk, and Prolog are examples of type safe languages. Fortran and C are examples of languages that aren't type safe.
Static/Dynamic type checking
This refers to when type checking occurs. Static type checking takes place during compilation, dynamic type checking takes place at run-time. This distinction makes no guarantee about the completeness of the type checking. Ada is a statically typed, type-safe language, which is to say that the necessary type checking takes place at compile time. (This was true at least of the old Ada, Ada 95 appears to support dynamic binding, so I'm not certain if it can do all checking statically.) C is also statically typed, but not type safe. Scheme is dynamically typed and type safe. (Some texts use statically typed to imply type safe, but I think this is confusing, because we should be separating out the issues of the completeness of the type checking (type safety) from the time when the type checking occurs (dynamic vs. static).)
Strongly typed
There are two common definitions for strongly typed (sorry) -- one is strongly typed = statically typed and type safe; the other is strongly typed = type safe. I will attempt to use the latter definition. Scheme and Ada are strongly typed by this definition.
Weakly typed
Weakly typed means "not type safe". Fortran and C are examples of weakly typed languages.

转自:http://courses.cs.washington.edu/courses/cse341/02wi/scheme/basics.html

关于type check的定义的更多相关文章

  1. Vue报错 type check failed for prop “xxx“. Expected String with value “xx“,got Number with value ‘xx‘

    vue报错    [Vue warn]: Invalid prop: type check failed for prop "name". Expected String with ...

  2. Vue报错之"[Vue warn]: Invalid prop: type check failed for prop "jingzinum". Expected Number with value NaN, got String with value "fuNum"."

    一.报错截图 [Vue warn]: Invalid prop: type check failed for prop "jingzinum". Expected Number w ...

  3. Invalid prop: type check failed for prop "XXX". Expected String, got Object.

    项目是Vue的,基于elementUI的后台管理系统. Invalid prop: type check failed for prop "total". Expected Str ...

  4. vue调用组件,组件回调给data中的数组赋值,报错Invalid prop type check failed for prop value. Expecte

    报错信息: 代码信息:调用一个tree组件,选择一些信息 <componentsTree ref="typeTreeComponent" @treeCheck="t ...

  5. vue type check failed for prop . Expected Number, got String

    代码是:fileNumLimit接收的类型是Number <vue-upload fileNumLimit='100'/> 改为 <vue-upload :fileNumLimit= ...

  6. Invalid prop: type check failed for prop "maxlength". Expected Number, got String.

    1.项目中,使用element-ui的input表单的maxlength属性报错 2.使用场景:       <el-input v-model="fname"  maxle ...

  7. vue.esm.js?efeb:628 [Vue warn]: Invalid prop: type check failed for prop "defaultActive". Expected String with value "0", got Number with value 0.

    vue.esm.js?efeb:628 [Vue warn]: Invalid prop: type check failed for prop "defaultActive". ...

  8. USB接口定义 | USB Type C接口定义 | 制作Type A转Type C充电-数据线

    1. USB接口定义 2. USB Type C接口定义 Type C接口母头(插座) Type C接口公头(插头) 引脚定义 参考:https://www.cnblogs.com/zhouhaoch ...

  9. Invalid prop: type check failed for prop "maxlength"

    Invalid prop: type check failed for prop "maxlength", element 框架时,因为想限制文本框的输入长度, maxlength ...

随机推荐

  1. 【网络通信】服务器端Socket监听80端口,建立连接传输数据时也是使用的80端口么?

    1. 服务器端Socket监听80端口,建立连接传输数据时也是使用的80端口么? 答:对.建立连接时服务器会分配一个新的Socket,但是用的源端口号还是80端口.套接字是由协议类型.源IP.目的IP ...

  2. Python中sys.argv[]的用法

    类似bash中的$0, $1, $2... sys.argv[0]:文件名 sys.argv[1]:第一个参数 sys.argv[2]:第二个参数 import sys print "The ...

  3. Python开发【第二十二篇】:Web框架之Django【进阶】

    Python开发[第二十二篇]:Web框架之Django[进阶]   猛击这里:http://www.cnblogs.com/wupeiqi/articles/5246483.html 博客园 首页 ...

  4. 基于JAVA网络编程的聊天小程序

    package com.neusoft.edu.socket; import java.io.BufferedReader; import java.io.IOException; import ja ...

  5. (转)system()函数

    [C/C++]Linux下system()函数引发的错误   今天,一个运行了近一年的程序突然挂掉了,问题定位到是system()函数出的问题,关于该函数的简单使用在我上篇文章做过介绍: http:/ ...

  6. oracle中drop、delete和truncate的区别

    oracle中drop.delete和truncate的区别 oracle中可以使用drop.delete和truncate三个命令来删除数据库中的表,网上有许多文章和教程专门讲解了它们之间的异同,我 ...

  7. html multiple select option 分组

    普通html方式展示<select name="viewType" style="width: 100%;height: 300px;" multiple ...

  8. windows服务,安装、启动、停止,配置,一个批处理文件搞定

    相对而言,还是比较通用的吧,如果哪位仁兄有更好的实现方式,或者发现有不足之处,还请多多指教.  @echo off echo.------------------------------------- ...

  9. oracle使用LEFT JOIN关联产生的问题在查询结果中使用CASE WHEN 无法判断

    oracle使用LEFT JOIN关联产生的问题在查询结果中使用CASE WHEN 无法判断 查询方式一: SELECT CASE WHEN (SELECT CAST(SUM(CASE ) THEN ...

  10. 【转】iOS开发6:UIActionSheet与UIAlertView

    原文: http://my.oschina.net/plumsoft/blog/42763 iOS程序中的Action Sheet就像Windows中的 “确定-取消”对话框一样,用于强制用户进行选择 ...