有几位对Prolog认识不足, 言论大谬, 特此反驳
SWI-Prolog先看这段Prolog程序
packages-R/r_demo.pl at master · SWI-Prolog/packages-R · GitHub有一系列从Prolog呼叫R语言的程序, 完全不需要额外宣告什麽FFI或中间语言, 就自动生成对应的R语言函数, 不只能呼叫R语言函数, 连R语言的语法都嵌了进去
@彭飞除了上述跟R语言合用, 光凭packages中官方支持的包, 还可以跟Java双向沟通, 不用啥中间语言可以呼叫C++, 可以Constraint Query Language读写SQL资料库, 还可以写网路应用
以此看来C语言之类的不少语言用途都没比Prolog广, 真要就短处论, C语言只能算是用来写作业系统跟系统程序的DSL, Ada也只是电子软体控制系统的DSL, 都不能算通用语言
@阅千人而惜知己Prolog的全称是Programming in Logic, 用途是编程, 不是用来搞证明一类的东西, 却拿来跟Coq用途完全不同的东西比较, 这跟拿Haskell这个编程语言跟Coq比自动证明有啥差别?
其语言本身也不用来作知识表示, 若要作知识表示另有方法
section('packages/semweb.html')
也比较看看我之前提到的应用, Coq几时能做到类似的事情?
看看
SWI-Prolog -- op/3可知Prolog的语法相当自由, Prolog语法根本就不是劣势, 连『jhon likes tim.』 这种看起来像英文句子也可以是Prolog合法程序, 也藉此能嵌入R語言语法
写个fibonacci数列就论断效能是否过于偏颇? Haskell也常因为惰性求值被乱用, 常常出现效能比Python差的程序, 但Haskell效能真的有比Python差?
另Python的效能也是很差, 但並不影响其成为通用语言, 很大一部分原因是他可用C扩展
相较下Prolog甚至可以自然地用C++跟Java扩展, 而且扩展所需的步骤更少, 为何Prolog效能会是问题, Python就不会是问题?
Python要是没有可扩展性, 也没办法有用到哪裡去
其实问一个XYZ语言为啥没被IT业界广泛应用, 跟问哲学系教授怎没成为当红电视名嘴一样莫名其妙
现在多数IT产业的功能几乎只剩下让人手机成瘾
要是有装Matlab的话, 可以打开安装的资料夹, 就会发现裡面有个Swi prolog的执行档, 在无形中帮助科研度过不少难关, JVM的设计文件裡也有提到使用Prolog规划
其存在如同《道德經》所云:太上,不知有之;
------------------------------------------------------------------------------------------------------
离个题说我自己应用Prolog的成果
某亲戚的农田需要排班几个抽水马达跟电机设备, 还要调控光照周期, 但又不能操劳过度避免烧毁, 反正就是一系列的规划问题
我买个Rasberry PI里面装Linux跟Swi Prolog, 用了CLP(R)规划, 输出IO pin控制继电器
用Prolog写起来着实简单, 同样问题要是用C++或Haskell, 我大概过劳死了
Swi Prolog的库很全, 各种规划问题, 另外有Java, C++高阶FFI, 有心应用真可以看下, 应用不需要受限於IT之类的
Prolog 不流行,或者生命力不强和输入输出半点关系都没有,真正的原因是Prolog 根本就算不上一门通用编程语言(general purpose programming language),它只是一个用穷举法(backward chaining search) 来求解受限的一阶逻辑(database semantic first-order logic) 问题的DSL。这种DSL 最初发明出来就是为了快速解决constraint-based problems 的,比如类型推导、图着色寄存器分配等,用来解决其他问题,比如数值计算,就会捉襟见肘,所以The Craft of Prolog 中才总结了那么多然并卵的小技巧。
所以“Prolog 自动替程序员做了很多事情”的假象背后,是“任何问题都用穷举法求解”的愚蠢策略。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有