小编Tim*_*Tim的帖子

构造类型,有界类型和无界类型的含义?

来自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节).

非泛型类型是非绑定类型还是绑定类型?

c# visual-studio

1
推荐指数
1
解决办法
248
查看次数

类的方法之间的差异,它们是"函数"还是"绑定方法"?

我做了一点实验.通过检查__dict__类或实例,我可以看到某些方法有类型function和一些bound method.实验很乱,我无法解决以下问题.

在Python 3中,类或实例的方法之间有什么区别,它们是"函数",哪些是"绑定方法"?

它们是如何分别创建的?

它们可以在类和实例上调用吗?它们是否会被隐含地作为第一个参数的实例?

"绑定方法"是类的属性还是类的实例?

谢谢.

python python-3.x

1
推荐指数
1
解决办法
79
查看次数

为什么自定义Python类实例的`__dict__`属性是类的描述符,而不是实例的实际属性?

来自/sf/answers/3141618231/

请注意,__dict__自定义Python类实例的属性是描述符 ; 实例本身没有属性,它是提供它的类(因此 type(instance).__dict__['__dict__'].__get__(instance)返回). object.__dict__可能存在,但object.__dict__['__dict__']不存在.

为什么__dict__自定义Python类实例的属性是类的描述符,而不是实例的实际属性?

python python-3.x

1
推荐指数
1
解决办法
314
查看次数

架构和目录是什么意思?

来自 Silberschatz 等人的数据库系统概念:

\n
\n

4.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
    \n
  1. 关系有一个模式,它是关系的所有\n属性的集合。上面引用中的“模式”似乎对应于多个关系。上面引用中的“模式”是否与关系的模式相同?
  2. \n
  3. 目录和数据库之间有什么关系?目录和数据库之间的关系是一对一的吗?
  4. \n
  5. mysql、postgresql 或\nSQL Server 中的目录和架构是什么样的?
  6. \n
\n

谢谢。

\n

database

1
推荐指数
1
解决办法
3164
查看次数

这个`git checkout`命令中的`<remote>/<branch>`表示远程分支或远程跟踪分支吗?

联系人git checkout说:

git checkout <branch>
Run Code Online (Sandbox Code Playgroud)

如果<branch>找不到但是在一个<remote>具有匹配名称的远程(称为)中确实存在跟踪分支,则视为等效于

$ git checkout -b <branch> --track <remote>/<branch>
Run Code Online (Sandbox Code Playgroud)

其中,手册页的git checkout说,所调用

$ git branch -f <branch> <remote>/<branch>
Run Code Online (Sandbox Code Playgroud)

-t选项,git branch默认情况下(从手册页git branch)

-t
Run Code Online (Sandbox Code Playgroud)

创建新分支时,设置 branch.<branch>.remotebranch.<branch>.merge 配置条目以将起点分支标记为新分支的"上游".

是什么<remote>/<branch>在等效git checkout命令,然后在git branch命令代表什么?

  1. 由于git branch命令设置 branch.<branch>.remotebranch.<branch>.merge成为远程存储库和远程分支,是否<remote>/<branch> 代表远程分支(上游分支)?

  2. 由于git branch命令创建一个新的本地分支<remote>/<branch>,是否<remote>/<branch>代表远程跟踪分支?

谢谢.

git

1
推荐指数
1
解决办法
72
查看次数

jps 进程是 JVM 进程吗?

在 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)

java jvm

1
推荐指数
1
解决办法
454
查看次数

最外部的评估策略如何评估功能的部分应用和咖喱函数的应用

赫顿在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

1
推荐指数
1
解决办法
76
查看次数

具有函数参数的函数是否可用?

/sf/answers/3991431881/

在哈斯克尔(Haskell),碰巧一切都是咖喱所有函数都只使用一个参数(甚至Haskell中未使用的函数也使用一个元组,严格来说,这是一个参数-您可能需要使用curry和uncurry函数来查看其工作原理)。

我不确定这是否是正确的,但可以这样假设。

如果一个函数采用另一个函数作为参数,它的咖喱化或不咖喱化与采用不带元组或列表参数的函数类似?(一对元组类型是type1 x type2并且可以是type1^2,而函数类型是type2^{type1},所以我发现它们相似)

如果是未咖喱的,如何将这样的功能转换为咖喱的功能?

haskell functional-programming currying

1
推荐指数
1
解决办法
149
查看次数

运算符(例如+)的行为是否更像咖喱函数或带有成对元组类型参数的函数?

如何找出运算符“ +”的类型?说运算符+不是函数。

诸如此类的运算符的+ 行为更像是什么,

  • 咖喱函数,或
  • 一个参数具有成对元组类型的函数?

用话务员的话说#,我#不是那样(#)(#)是咖喱函数,并且如果#表现得像咖喱函数,我猜没有必要了(#),不是吗?

谢谢。

haskell language-lawyer

1
推荐指数
2
解决办法
169
查看次数

在monad的上下文中一定要使用符号吗?

Haskell 2010年报告说

do表达式为monadic编程提供了更常规的语法。它允许一个表达式,例如

putStr "x: " >>
getLine >>= \l ->
return (words l)
Run Code Online (Sandbox Code Playgroud)

用更传统的方式写成:

do putStr "x: "
   l <- getLine
   return (words l)
Run Code Online (Sandbox Code Playgroud)

汤普森说,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)

monads haskell do-notation

1
推荐指数
1
解决办法
139
查看次数