百科问答小站 logo
百科问答小站 font logo



Prolog 这类逻辑式编程语言为什么没有得到广泛应用? 第1页

  

user avatar   abstract-monkey 网友的相关建议: 
      

有几位对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之类的


user avatar   peng-fei-29 网友的相关建议: 
      

Prolog 不流行,或者生命力不强和输入输出半点关系都没有,真正的原因是Prolog 根本就算不上一门通用编程语言(general purpose programming language),它只是一个用穷举法(backward chaining search) 来求解受限的一阶逻辑(database semantic first-order logic) 问题的DSL。这种DSL 最初发明出来就是为了快速解决constraint-based problems 的,比如类型推导、图着色寄存器分配等,用来解决其他问题,比如数值计算,就会捉襟见肘,所以The Craft of Prolog 中才总结了那么多然并卵的小技巧。

所以“Prolog 自动替程序员做了很多事情”的假象背后,是“任何问题都用穷举法求解”的愚蠢策略。


user avatar   david-dong-20 网友的相关建议: 
      

这是一个普通的游戏公司,对于真正生活中的英雄最大的支持和鼓励,

不知道各位玩家,在玩守望先锋的时候有没有注意过游戏的宣传语和背景设定,

‘’这个世界,需要英雄!"


守望先锋维护世界和平,与邪恶征战,

但是因为坏人的谣言与人民的导向而走向失落,

是啊,在见义勇为的时候,我们每个人都会迟疑,

如果我们挺身而出,自己身败名裂,甚至生命受到了威胁,怎么办?

然而,这个中国少年,和守望先锋的选择一样,我们要选择正义,


守望先锋的成员在地下活动着,他们活跃在世界各地,

无论是波多黎各,还是埃及,还是大洋彼岸的东方,他们的人数越来越少,伤亡也越来越惨重,

但是他们没有一刻停下自己维护世界和平的脚步,没有豪言壮语,也没有经天纬地,

只是哪怕日行一善,帮助身边的人。

多拉多是个不太平的地方,波多黎各的海水也格外苦涩,

曾经守望先锋的领袖莫里森化名76号士兵,他的任务是夺下敌人的赃物,

但是当坏人向女孩扔出一颗手雷时,莫里森没有迟疑,选择先去救人。

当我们在宣传片里看到,当76号扑向女孩救下了她的时候,

小女孩怯懦地问到,你是我们说的…英雄吗?



而那个曾经的世界英雄指挥官只是淡淡的回答,旧习难改吧,也不再是了。


担担自己身上的灰尘,继续前行。如果他再遇到这种事,他依然会伸出援手。

是的,维护善良和正义,其实只是我们的习惯,

只是我们在面对邪恶的时候,畏惧,恐慌,让我们忘记了正义。



可我觉得,你就是英雄。。。

是啊,看完这个宣传片,每个人都会热血沸腾,

为什么世界有太多的懦弱和犹豫,为什么正义不能得到歌颂。

暴雪的这一壮举,让世界的所有玩家,

记住了有这样一个普通的玩家,和我们一起奋战在正义的路上。




打击邪恶的勇气,一心向上的情怀,发自内心而生的能量,这一切得一切都被我们铭记。


“隐形的纪念躲在心里面

也许吧 也许不会再见

阴天或晴天

一天又一年

风它在对我说莫忘这一切'

这个世界,需要英雄,不是吗?




  

相关话题

  教二年级的小朋友编程哪门语言入门好? 
  5G 的到来会造成编程语言大灭绝进而 JS 一统应用前端吗? 
  为什么老程序员的效率如此高? 
  如何看待一五年级小学生称其自创编程语言,实际完成度如何? 
  在有能够转化为C、C++、Java的第四代语言Raptor的情况下,为什么还需要C等程序设计语言? 
  为什么我国的计算机科技领域发展了十几年水平依旧落后国外这么多? 
  为什么编程语言有这么多种类?为什么不统一成一种语言呢? 
  如果一门编程语言中不允许对象(或结构体)循环引用,那么用它实现什么功能会比较困难? 
  在大型项目上,Python 是个烂语言吗? 
  该如何优雅地黑 C++? 

前一个讨论
如何评价「快手」APP?
下一个讨论
历史上有哪些脱离发明者初衷的发明?





© 2024-12-26 - tinynew.org. All Rights Reserved.
© 2024-12-26 - tinynew.org. 保留所有权利