作家
登录

6个新奇的编程方式,改变你对编码的认知

作者: 来源: 2018-03-12 14:03:44 阅读 我要评论

  • sudoku(Puzzle, Solution) :- 
  •   Solution = Puzzle, 
  •    
  •   Puzzle = [S11, S12, S13, S14, 
  •             S21, S22, S23, S24, 
  •             S31, S32, S33, S34, 
  •             S41, S42, S43, S44], 
  •    
  •   fd_domain(Solution, 1, 4), 
  •    
  •   Row1 = [S11, S12, S13, S14], 
  •   Row2 = [S21, S22, S23, S24], 
  •   Row3 = [S31, S32, S33, S34], 
  •   Row4 = [S41, S42, S43, S44],       
  •    
  •   Col1 = [S11, S21, S31, S41], 
  •   Col2 = [S12, S22, S32, S42], 
  •   Col3 = [S13, S23, S33, S43], 
  •   Col4 = [S14, S24, S34, S44],       
  •    
  •   Square1 = [S11, S12, S21, S22], 
  •   Square2 = [S13, S14, S23, S24], 
  •   Square3 = [S31, S32, S41, S42], 
  •   Square4 = [S33, S34, S43, S44],       
  •    
  •   valid([Row1, Row2, Row3, Row4, 
  •          Col1, Col2, Col3, Col4, 
  •          Square1, Square2, Square3, Square4]). 
  •   
  • valid([]). 
  • valid([Head | Tail]) :- fd_all_different(Head), valid(Tail). 
  • 以下是数独解算器的运行结不雅:

    1. | ?- sudoku([_, _, 2, 3, 
    2.              _, _, _, _, 
    3.              _, _, _, _, 
    4.              3, 4, _, _], 
    5.              Solution). 
    6.   
    7. S = [4,1,2,3,2,3,4,1,1,2,3,4,3,4,1,2] 

    不幸的是,声明式编程说话很轻易造成机能瓶颈。膳绫擎的排序算法很可能 O(n!)让数独解算器进行了一次强力搜刮; 并且大年夜多半开辟人员必须供给数据库提示和额外索引,避免履行SQL萌芽时出现价值昂扬且效力低下的情况。

    符号编程

    Aurora说话是一个典范的符号编程的例子:它不仅包含纯文本编程,并且还包含图像,数学方程,图形,图钡寥。这可以或许用该数据的原始格局操作和描述各类数据,而不是用文本描述所稀有据。Aurora也是完全互动的,可以急速显示每行代码的结不雅,例如 REPL。

    Aurora说话由Chris Granger创建,他也创建了Light Table IDE。Chris在他的文┞仿中概述了Aurora的念头:实现更好的编程。目标是使编程加倍具有可不雅察性,直接并削减有时的复杂性。欲懂得更多信息,请务必查看Bret Victor令人难以置信的会谈: Inventing src="http://s2.51cto.com/oss/201803/12/a38254dc318f4f8e7054cfc421fafcaa.png" />

    如不雅你应用过SQL,那么你已经完成了一种声明式编程,你可能没有意识到这一点:当你发出萌芽时select X from Y where Z,你正在描述你想要返回的数据集;它是真正计算出若何履行萌芽的数据库引擎。

    声明式编程


      推荐阅读

      私有云市场:激荡风云几载,谁是中国市场未来主导?

    因为工作的关系,笔者一向慎密跟踪国内私有云市场的成长,并有幸介入个中;也是因为工作的关系,笔者接触了很多没有广泛传播的消息素材。对于私有云这个概念,似乎国内大年夜局已定,几无悬念。笔者一向>>>详细阅读


    本文标题:6个新奇的编程方式,改变你对编码的认知

    地址:http://www.17bianji.com/lsqh/40608.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)