来自C#5.0规格
4.4构造类型
泛型类型声明本身表示一种未绑定的泛型类型,它通过应用类型参数用作形成许多不同类型的"蓝图".类型参数写在尖括号(<和>)内,紧跟在泛型类型的名称后面.未绑定的泛型类型只能在typeof-expression(第7.6.11节)中使用.包含至少一个类型参数的类型称为构造类型.构造类型可以在可以出现类型名称的语言中的大多数地方使用.未绑定的泛型类型只能在typeof-expression(第7.6.11节)中使用.
构造类型也可以在表达式中用作简单名称(第7.6.2节)或访问成员(第7.6.4节).
"构造类型"的概念是否与"有界通用类型"的概念相同?
4.4.3绑定和未绑定类型
术语" 未绑定类型"是指非泛型类型或非绑定泛型类型.术语绑定类型是指非泛型类型或构造类型.
未绑定类型是指由类型声明声明的实体.未绑定的泛型类型本身不是类型,不能用作变量,参数或返回值的类型,也不能用作基类型.可以引用未绑定泛型类型的唯一构造是typeof表达式(第7.6.11节).
非泛型类型是非绑定类型还是绑定类型?
我做了一点实验.通过检查__dict__类或实例,我可以看到某些方法有类型function和一些bound method.实验很乱,我无法解决以下问题.
在Python 3中,类或实例的方法之间有什么区别,它们是"函数",哪些是"绑定方法"?
它们是如何分别创建的?
它们可以在类和实例上调用吗?它们是否会被隐含地作为第一个参数的实例?
"绑定方法"是类的属性还是类的实例?
谢谢.
请注意,
__dict__自定义Python类实例的属性是描述符 ; 实例本身没有属性,它是提供它的类(因此type(instance).__dict__['__dict__'].__get__(instance)返回).object.__dict__可能存在,但object.__dict__['__dict__']不存在.
为什么__dict__自定义Python类实例的属性是类的描述符,而不是实例的实际属性?
来自 Silberschatz 等人的数据库系统概念:
\n\n\n4.5.7 模式、目录和环境
\n与早期的 \xef\xac\x81le 系统一样,早期的数据库系统也为所有关系提供一个名称空间。用户必须协调以确保他们不会尝试对不同的关系使用相同的名称。现代数据库系统为命名关系提供了三级层次结构。层次结构的顶层由目录组成,每个目录都可以包含架构。SQL 对象(例如关系和视图)包含\n在架构内。(某些数据库实现使用术语\n \xe2\x80\x9cdatabase"代替术语目录。)
\n为了对数据库执行任何操作,用户(或程序)\n必须\xef\xac\x81首先连接到数据库。用户必须提供用户名\n并且通常还需要提供密码以验证用户的身份。每个用户都有一个默认的目录和架构,并且该组合对于该用户来说是唯一的。当用户连接到数据库系统时,将为该连接设置默认\n目录和架构;这对应于当用户登录操作系统时\n当前目录被设置为用户\xe2\x80\x99 的主目录。
\n为了唯一地标识关系,可以使用由三部分组成的名称,例如\ncatalog5.univ schema.course 我们可以省略\n目录组件,在这种情况下,名称的目录部分被视为\n默认目录用于连接。因此,如果catalog5是默认目录,我们可以使用univ schema.course来唯一地标识相同的关系。
\n
谢谢。
\n联系人git checkout说:
Run Code Online (Sandbox Code Playgroud)git checkout <branch>如果
<branch>找不到但是在一个<remote>具有匹配名称的远程(称为)中确实存在跟踪分支,则视为等效于Run Code Online (Sandbox Code Playgroud)$ git checkout -b <branch> --track <remote>/<branch>
其中,手册页的git checkout说,所调用
$ git branch -f <branch> <remote>/<branch>
Run Code Online (Sandbox Code Playgroud)
与 -t选项,git branch默认情况下(从手册页git branch)
Run Code Online (Sandbox Code Playgroud)-t创建新分支时,设置
branch.<branch>.remote和branch.<branch>.merge配置条目以将起点分支标记为新分支的"上游".
是什么<remote>/<branch>在等效git checkout命令,然后在git branch命令代表什么?
由于git branch命令设置 branch.<branch>.remote 并 branch.<branch>.merge成为远程存储库和远程分支,是否<remote>/<branch> 代表远程分支(上游分支)?
由于git branch命令创建一个新的本地分支<remote>/<branch>,是否<remote>/<branch>代表远程跟踪分支?
谢谢.
在 Ubuntu 上,man jps说
jps - 列出目标系统上已检测的 Java 虚拟机 (JVM)。
“经过检测的 Java 虚拟机”是什么意思?
$ jps -v
29584 Jps -Dapplication.home=/usr/lib/jvm/java-11-openjdk-amd64 -Xms8m -Djdk.module.main=jdk.jcmd
Run Code Online (Sandbox Code Playgroud)
根据定义,jps 进程是 JVM 进程吗?
jps 是一个 ELF 文件,而不是从 Java 程序编译的 JVM 字节码程序:
$ file /usr/lib/jvm/java-11-openjdk-amd64/bin/jps
/usr/lib/jvm/java-11-openjdk-amd64/bin/jps: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, for GNU/Linux 3.2.0, BuildID[sha1]=3f48c70ab711b493ee793c92c19b3a884896bb4d, stripped
$ jps -v
16462 Jps -Dapplication.home=/usr/lib/jvm/java-11-openjdk-amd64 -Xms8m -Djdk.module.main=jdk.jcmd
Run Code Online (Sandbox Code Playgroud) 赫顿在Haskell编程说
计算表达式时,应以什么顺序执行归约?一种通用策略(称为 最内层评估)是始终选择最内层的Redex,因为它不包含其他Redex。如果最里面的redex不止一个,按照惯例,我们选择一个从表达式最左边的位置开始的redex。
对表达式进行评估的另一种常见策略是对最内层的评估,它总是选择最外层的Redex,因为它不包含在其他Redex中。如果有多个这样的redex,则像以前一样,我们选择从最左边开始的那个。毫不奇怪,这种评估策略被称为 最外部评估。
在部分应用功能时,例如mult(3)(4),其中mult定义为
mult :: (Int,Int) -> Int
mult (x,y) = x * y
Run Code Online (Sandbox Code Playgroud)
最内层的评估将首先评估mult(3)为\y->3*y,然后评估(\y->3*y)4。最外部的评估将如何评估mult(3)(4)?
在应用咖喱函数时,例如mult'(3)(4),其中
mult' :: Int -> Int -> Int
mult' x = \y -> x * y
Run Code Online (Sandbox Code Playgroud)
最内层的评估将首先评估mult'(3)为\y->3*y,然后评估(\y->3*y)4。最外部的评估将如何评估mult'(3)(4)?
evaluation haskell functional-programming currying partial-application
在哈斯克尔(Haskell),碰巧一切都是咖喱。所有函数都只使用一个参数(甚至Haskell中未使用的函数也使用一个元组,严格来说,这是一个参数-您可能需要使用curry和uncurry函数来查看其工作原理)。
我不确定这是否是正确的,但可以这样假设。
如果一个函数采用另一个函数作为参数,它的咖喱化或不咖喱化与采用不带元组或列表参数的函数类似?(一对元组类型是type1 x type2并且可以是type1^2,而函数类型是type2^{type1},所以我发现它们相似)
如果是未咖喱的,如何将这样的功能转换为咖喱的功能?
如何找出运算符“ +”的类型?说运算符+不是函数。
诸如此类的运算符的+ 行为更像是什么,
用话务员的话说#,我#不是那样(#)。(#)是咖喱函数,并且如果#表现得像咖喱函数,我猜没有必要了(#),不是吗?
谢谢。
Haskell 2010年报告说
do表达式为monadic编程提供了更常规的语法。它允许一个表达式,例如
Run Code Online (Sandbox Code Playgroud)putStr "x: " >> getLine >>= \l -> return (words l)用更传统的方式写成:
Run Code Online (Sandbox Code Playgroud)do putStr "x: " l <- getLine return (words l)
汤普森说,Haskell函数编程技巧说
我们将继续使用do表示法,但要记住,它本质上 归结为一个函数(>> =)的存在,该函数负责对I / O程序进行排序并将其结果绑定以供将来使用。
以上是否意味着必须在monad的上下文中使用符号?
如果是,为什么以下函子使用do表示法?
instance Functor IO where
-- fmap :: (a -> b) -> IO a -> IO b
fmap g mx = do {x <- mx; return (g x)}
Run Code Online (Sandbox Code Playgroud) haskell ×4
currying ×2
python ×2
python-3.x ×2
c# ×1
database ×1
do-notation ×1
evaluation ×1
git ×1
java ×1
jvm ×1
monads ×1