gpt4 book ai didi

typing - 哪个是强类型语言 : Python or Prolog?

转载 作者:行者123 更新时间:2023-12-04 10:12:42 24 4
gpt4 key购买 nike

我是 Python 和 prolog 的新手。根据我的理解,Python 是一种强类型语言。 Prolog 也是强类型语言吗?

最佳答案

与 Python 一样,如果您尝试添加不是整数的内容,Prolog 会给您一个类型错误。但这只是 Prolog 能为您做的事情的极限。说 Prolog 是或不是“强类型”并不是很有用——我已经写了很多关于“强类型”的问题的答案,并重写了其他人对“强类型”问题的错误答案,我从来不想再次听到这些话。还有somewhere, someone on the Internet is wrong .

以下是有用的信息:

  • Prolog 和 Python 都是动态类型的,也就是说,直到运行时才检查程序是否存在“类型错误”。在这种情况下,典型的“类型错误”是应用于“错误”类型值的函数/方法(Python)或关系(Prolog)。 Python 会检测您将某些内容应用于错误数量的参数的情况。
  • 在 Python 中,有相当多的术语(表达式)是类型错误的,即在运行时会因为类型错误而被拒绝。
  • 在 Prolog 中,根据定义,几乎每个术语都是类型正确的。例如,用户定义的仿函数可以应用于任何长度的任何术语列表,Prolog 会很高兴地尝试将其解释为格式良好的关系。如果关系的参数数量“错误”,Prolog 不会将其视为类型错误;它只是假设您有两种不同的关系,它们具有不同的同名关系。 (这种行为是否有用是有争议的,但这就是 Prolog 的行为方式。)Prolog 对像 IS 这样的内置关系有点严格,如
    X is Y + Z

  • 真正有用的是,在 Prolog 中,动态类型系统拒绝的术语很少——比 Python 的动态类型系统少得多。如果因此您选择将 Prolog 称为“更弱”而将 Python 称为“更强”,那么您可以这样做,因为术语“强”和“弱”没有任何普遍同意的技术含义。但是您最好考虑并说 Prolog 的动态类型系统接受几乎所有类型的关系和术语——与 Python 不同。这样你就可以交流实际发生的事情。

    关于typing - 哪个是强类型语言 : Python or Prolog?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2785436/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com