徽标
联盟百科
通讯
下载应用,请到 Google Play
新! 在您的Android™设备上下载联盟百科!
自由
比浏览器更快的访问!
 

Common Lisp

指数 Common Lisp

Common Lisp,縮寫為CL(不是組合邏輯的縮寫)是Lisp編程語言的一種方言,由ANSI INCITS 226-1994(R2004)(前身為ANSI X3.226-1994(R1999)),所定義的語言規範標準。Common Lisp HyperSpec是源自於ANSI Common Lisp標準的網頁超連結版本。 CL語言是為標準化和改良Maclisp而開發的後繼者。到20世紀80年代初,幾個工作群組已經在設計MacLisp各種後繼者,例如:Lisp Machine Lisp(又名 ZetaLisp),Spice Lisp,NIL和S-1 Lisp。CL是為了標準化和擴展此前眾多的MacLisp分支而開發,它本身並非具體的實作,而是對語言設立標準的規範。有數個實作符合Common Lisp規範,其中包括自由和開源軟件,以及商業化產品。CL支援了結構化、函數式和物件導向編程等範式。相对于各种嵌入在特定产品中的语言,如Emacs Lisp和AutoLISP,Common Lisp是一種用途廣泛的编程语言。不同於很多早期Lisp,Common Lisp如同Scheme,其中的變量是預設為詞法作用域的。 身為一種動態編程語言,它有助於進化和增量的軟件開發,並將其迭代編譯成高效的執行程序。這種增量開發通常是互動持續地改善,而不需中斷執行中的應用程序。它還支援在後期的分析和優化階段添加可選的型別註記與轉型,使編譯器產生更有效率的代碼。例如在硬體和實作的支援範圍內,fixnum能保存一個未封裝整數,允許比大整數或任意精度類型更高效率的運算。同樣地,在每個模組或函數的基礎上可聲明優化,指示編譯器要編譯成哪一類型的安全級別。 CL包含了支援多分派和方法組合的物件系統,縮寫為CLOS,它通常以元物件(Metaobject)協定來實現。 CL藉由標準功能進行擴展,例如Lisp宏(编译时期程序自身完成的代码重排(compile-time code rearrangement accomplished by the program itself))和阅读器宏(赋予用户自定义的語法以扩展具特殊意义的符号(extension of syntax to give special meaning to characters reserved for users for this purpose))。 CL為Maclisp和约翰·麦卡锡的原創Lisp提供了一些向後兼容性。這允許較舊的Lisp軟件移植到Common Lisp之上。.

49 关系: ACL2动态语言动态调度可變參數函數变量 (程序设计)头等函数小蓋伊·史提爾巨集异常处理作用域CLClojureCLSQL程式語言歷史程式迴圈系统时间绿色线程编程语言列表编程范型EmacsEmacs Lisp面向对象程序设计類型系統预处理器计算机代数系统列表鸭子类型關係運算子虛數單位GNU多重精度运算库GNU软件包列表LISPMaximaMixinQtRedditRedisS-表达式SchemeSnappyTkWeblocks极坐标系条件运算符格式化字符串格林斯潘第十定律指定敍述星號星际文件系统教育编程语言列表

ACL2

ACL2(A Computational Logic for Applicative Common Lisp,应用 Common Lisp 计算逻辑)是由一个程序语言、一套一阶逻辑的可拓理论、以及一个机械化的定理证明器所组成的软件系统。ACL2从设计上支持基于归纳逻辑理论的自动推理,可应用于软件或硬件系统的验证。ACL2的编程语言与实现基于 Common Lisp。ACL2是基于BSD授权发布的开源软件。 ACL2程序语言可看作是一个函数式(无任何副作用)的 Common Lisp 变体。和Lisp一样,ACL2使用动态类型。ACL2中所有的函数均是完整的()——意即,每一个函数均在ACL2的全集中将各个对象(输入)映射到另一个对象(输出)。 ACL2的基础理论将其程序语言的语义及其内置函数全部公理化。而程序语言中满足定义原则(definitional principle)的用户自定义部分在扩展该理论的同时亦能保持其逻辑自洽性。 ACL2定理证明器的核心基于项重写(term rewriting)系统,此核心高度可扩展,用户已证得的定理可以在后续的猜想中被用作现成的数学证明。 ACL2设计的目标是成为 Boyer–Moore 定理证明器 NQTHM 的一个“工业级别”版本。为了达成此目标,ACL2涵盖了支持许多数学和计算理论之工程学应用的有趣特性。ACL2因为基于 Common Lisp 实现而继承了其高效率;作为归纳验证基础的同一规范亦可以被编译器编译及优化,进而在本地执行。 2005年,Boyer-Moore 系列证明器(包括 ACL2)的开发者获得了ACM软件系统奖,获奖理由是“作为最高效的定理证明器的先驱和工程师……开发了能够用于验证硬件和软件可靠性的形式化工具。”.

新!!: Common Lisp和ACL2 · 查看更多 »

动态语言

动态编程语言是高级程序设计语言的一个类别,在计算机科学领域已被广泛应用。它是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。动态语言目前非常具有活力。众所周知的ECMAScript(JavaScript)便是一个动态语言,除此之外如PHP、Ruby、Python等也都属于动态语言,而C、C++等语言则不属于动态语言。 大部分动态语言都使用动态类型,但也有些不是。.

新!!: Common Lisp和动态语言 · 查看更多 »

动态调度

在计算机科学中,动态调度(Dynamic dispatch)是指运行时选择哪一个多态操作的实现(方法或函数)来调用的过程。动态调度通常被应用于面向对象编程(OOP)的语言和系统,并被认为是一个主要特点。 面向对象的系统把一个问题看作是一系列通过名字引用来制定操作的相互影响的物体。多态性是指一些可互换的物体虽有相同名字但却在行为上不同的现象。例如,一个文件对象和一个数据库对象都有一个储存记录的方法来记录需要存储的的个人记录,但是二者的实现却不同。一个程序可以有对文件或数据库的访问。当一个程序调用对象的存储记录时,有一些东西需要来决定采取哪种行为。如果有人认为OOP仅仅指给对象发送信息,那么在这个例子中程序仅仅把一条存储记录信息发送给了一个未知类型的对象,而把如何将这条信息发送给正确对象交给运行支持系统来处理。这个对象来决定它执行哪些行为。 与动态调度成对比的是静态调度,在静态调度中,对一个多态操作的实现是在编译时间就选择好的。动态调度的目的在于支持那些当在编译时间内无法决定一个多态操作的合适的实现因为这个决定取决于这个操作的一个或多个实际参数的运行类型的情形。 动态调度和动态绑定不同。在选择操作的上下文中,绑定把名称和操作相关联,而调度则在确定名称所引用的操作之后选择操作的实现。通过使用动态调度,名称可以在编译时被绑定到多态操纵中,但是直到运行时才执行该实现。虽然动态分派不暗示后期绑定,但后期绑定意味着动态分派,因为绑定决定了什么可以调度。.

新!!: Common Lisp和动态调度 · 查看更多 »

可變參數函數

在計算機程序設計,一個可變參數函數是指一個函數擁有不定引數,即是它接受一個可變數目的參數。不同的程式語言對可變參數函數的支持有很大差異。 一般而言,在設計函數時會遇到許多數學和邏輯操作,是需要一些可變功能。例如,計算數字串的總和、字符串的聯接或其他操作過程,都可以存在任意數量的參數。 另一種許多語言都實現為可變參數函數的是格式輸出函數,在C語言的printf函數和Common Lisp的format函數就是例子。這些函數都需要一個參數,指定格式的輸出,再讀取可變參數的值進行格式化。 另外,可變參數函數在某些語言存在安全問題。例如C語言在沒有長度檢查和類型檢查,在傳入過少的參數或不符的類型時可能會出現溢位的情況,更可能會被利用為攻擊目標。所以,在設計函數時可以先考慮其他替補方案,例如以類型安全的方式——重載。.

新!!: Common Lisp和可變參數函數 · 查看更多 »

变量 (程序设计)

在程序設計中,變數(Variable,scalar)是指一個包含部分已知或未知數值或資訊(即一個值)之儲存位址,以及相對應之符號名稱(識別字)。通常使用變數名稱參照儲存值;將名稱和內容分開能讓被使用的名稱獨立於所表示的精確訊息之外。電腦原始碼中的識別字能在執行期間綁紮一個值,且該變數的值可能在程式執行期間改變。 程序設計中的變數不一定能直接對應到數學中所謂的變數之概念。在程序設計中,變數的值不一定要為方程或數學公式之一部分。程序設計中的變數可使用在一段可重復的程序:在一處賦值,然後使用於另一處,接著在一次賦值,且以相同方式再使用一次(見迭代)。程序設計中的變數通常會給定一個較長的名稱,以描述其用途;數學中的變數通常較為簡潔,只給定一、兩個字母,以方便抄寫及操作。 一個變數的儲存位址可以被不同的識別字所參照,這種情況稱之為別名。使用其中一個識別字為變數賦值,將會改變透過另一個識別字存取的值。 編譯器必須將代表變數的名稱替代成該數據所在的實際位址。變數的名稱、類型及位址通常會維持固定,但該位址所儲存之數據於程式執行期間則可能會改變。.

新!!: Common Lisp和变量 (程序设计) · 查看更多 »

头等函数

头等函数(first-class function)是指在程序设计语言中,函数被当作头等公民。这意味着,函数可以作为别的函数的参数、函数的返回值,赋值给变量或存储在数据结构中。 有人主张应包括支持匿名函数(函数字面量,function literals)。, by Michael Lee Scott, section 11.2 "Functional Programming".

新!!: Common Lisp和头等函数 · 查看更多 »

小蓋伊·史提爾

小蓋伊·路易士·史提爾(Guy Lewis Steele Jr.,),綽號為The Great Quux,GLS,生於美國密蘇里州,計算機科學家,曾與理查德·斯托曼共同開發了Emacs,也是Scheme的共同作者,在程式語言方面有很大的貢獻。.

新!!: Common Lisp和小蓋伊·史提爾 · 查看更多 »

巨集

,是一種批--量處理的稱謂。 计算机科学裡的宏是一种抽象(Abstraction),它根据一系列预定义的规则替换一定的文本模式。解释器或编译器在遇到宏时会自动进行这一模式替换。对于编译语言,宏展开在编译时发生,进行宏展开的工具常被称为宏展开器。宏这一术语也常常被用于许多类似的环境中,它们是源自宏展开的概念,这包括键盘宏和宏语言。绝大多数情况下,“宏”这个词的使用暗示着将小命令或动作转化为一系列指令。 宏的用途在于自动化频繁使用的序列或者是获得一种更强大的抽象能力。 计算机语言如C语言或汇编语言有简单的宏系统,由编译器或汇编器的预处理器实现。C语言的宏预处理器的工作只是简单的文本搜索和替换,使用附加的文本处理语言如M4,C程序员可以获得更精巧的宏。 Lisp类语言如Common Lisp和Scheme有更精巧的宏系统:宏的行为如同是函数对自身程序文本的变形,并且可以应用全部语言来表达这种变形。一个C宏可以定义一段语法的替换,然而一个Lisp的宏却可以控制一节代码的计算。 获得了控制代码的执行顺序(见惰性计算和非限制函数)的能力,使得新创建的语法结构与语言内建的语法结构不可区分。例如,一种Lisp方言有cond而没有if,就可以使用宏由前者定义后者。Lisp语法的去部主要扩展,比如面向对象的CLOS系统,可以由宏来定义。 MacroML有型别语法宏,一种有效的理解方式是把这种语法宏看作是多阶段计算。.

新!!: Common Lisp和巨集 · 查看更多 »

异常处理

异常处理,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件)。 各种编程语言在处理异常方面具有非常显著的不同点(错误检测与异常处理区别在于:错误检测是在正常的程序流中,处理不可预见问题的代码,例如一个调用操作未能成功结束)。某些编程语言有这样的函数:当输入存在非法数据时不能被安全地调用,或者返回值不能与异常进行有效的区别。例如,C语言中的atoi函数(ASCII串到整数的转换)在输入非法时可以返回0。在这种情况下编程者需要另外进行错误检测(可能通过某些辅助全局变量如C的errno),或进行输入检验(如通过正则表达式),或者共同使用这两种方法。 通过异常处理,我们可以对用户在程序中的非法输入进行控制和提示,以防程序崩溃。 从进程的视角,硬件中断相当于可恢复异常,虽然中断一般与程序流本身无关。 从子程序编程者的视角,异常是很有用的一种机制,用于通知外界该子程序不能正常执行。如输入的数据无效(例如除数是0),或所需资源不可用(例如文件丢失)。如果系统没有异常机制,则编程者需要用返回值来标示发生了哪些错误。.

新!!: Common Lisp和异常处理 · 查看更多 »

作用域

在電腦程式設計中,作用域(scope,或譯作有效範圍)是名字(name)与实体(entity)的绑定(binding)保持有效的那部分计算机程序。不同的编程语言可能有不同的作用域和名字解析。而同一语言内也可能存在多种作用域,随实体的类型变化而不同。作用域类别影響變量的绑定方式,根據語言使用靜態作用域還是動態作用域变量的取值可能会有不同的結果。.

新!!: Common Lisp和作用域 · 查看更多 »

CL

CL、Cl或cl等可以指:.

新!!: Common Lisp和CL · 查看更多 »

Clojure

Clojure(發音類似"closure")是一套現代的Lisp語言的動態語言版。它是一个函数式多用途的语言。 Clojure可以執行於Java虛擬機,通用語言運行時以及JavaScript引擎之上。與其他Lisp一樣,Clojure認為同像性,同時擁有複雜的巨集。 Clojure最新的稳定版本是1.8,发布于2016年1月19日。第一个稳定版本1.0于2009年5月4日发布。 Clojure是一个在Eclipse公共许可证下发行的自由软件。目前其开发进程是社区主导的,在作者Rich Hickey以一个“终身的仁慈独裁者”的身份监督下进行。.

新!!: Common Lisp和Clojure · 查看更多 »

CLSQL

CLSQL是一个Common Lisp语言的SQL数据库接口,用于让Common Lisp和数据库进行通信。这个项目由Kevin M. Rosenberg在2001年发起,以支持在多个Common Lisp的实现上通过使用UFFI这个库,进行SQL数据库的存取操作。CLSQL最初的代码大部分来自于Pierre R. Mai所开发的MaiSQL库。在2003年的时候,onShore Development公司抛弃了UncommonSQL这个库,随即在2004年的四月份,Marcus Pearce将UncommanSQL库移植到了CLSQL上。UncommonSQL库为CLSQL提供了和LispWorks公司的CommonSQL库兼容的API。.

新!!: Common Lisp和CLSQL · 查看更多 »

程式語言歷史

這篇文章在探討程式語言在歷史上的主要發展。更詳細的事件發生年表,請參閱程式語言年表。.

新!!: Common Lisp和程式語言歷史 · 查看更多 »

程式迴圈

迴圈是計算機科學運算領域的用語,也是一種常見的控制流程。迴圈是一段在程式中只出現一次,但可能會連續執行多次的程式碼。迴圈中的程式碼會執行特定的次數,或者是執行到特定條件成立時結束迴圈,或者是針對某一集合中的所有項目都執行一次。 在一些函數程式語言(例如Haskell和Scheme)中會使用递归或不动点组合子來達到迴圈的效果,其中尾部递归是一種特別的递归,很容易轉換為迭代。.

新!!: Common Lisp和程式迴圈 · 查看更多 »

系统时间

计算机科学与计算机编程中, 系统时间表示在计算机系统中的时间与日期。通常用系统时钟(system clock)从某个的嘀嗒数(number of ticks)。例如,类Unix系统采用世界标准时1970年1月1日00:00:00开始的秒数(不考虑闰秒)作为UNIX时间。Windows API使用SYSTEMTIME表示年月日时分秒毫秒;使用FILETIME表示自世界标准时1601年1月1日00:00:00开始的100纳秒为单位的时钟嘀嗒数。 系统时间可以转化为日历时间以适合人去理解。例如Unix时间对应于日历时间2001年9月9日 01:46:40 UT。.

新!!: Common Lisp和系统时间 · 查看更多 »

绿色线程

在计算机程序设计中,绿色线程是一种由运行环境或虚拟机(VM)调度,而不是由本地底层操作系统调度的线程。绿色线程并不依赖底层的系统功能,模拟实现了多线程的运行,这种线程的管理调配发生在用户空间而不是内核空间,所以它们可以在没有原生线程支持的环境中工作。.

新!!: Common Lisp和绿色线程 · 查看更多 »

编程语言列表

此编程语言列表按字母顺序列出了知名编程语言,包括当前使用的和以前使用过的编程语言,BASIC的方言、深奥的编程语言和标记语言除外。.

新!!: Common Lisp和编程语言列表 · 查看更多 »

编程范型

编--程范型、编--程范式或程式--設計法(Programming paradigm),(範即模範、典範之意,範式即模式、方法),是一类典型的编程风格,是指从事软件工程的一类典型的风格(可以对照方法学)。如:函數式編程、程序編程、面向对象编程、指令式编程等等為不同的编程范型。 编程范型提供了(同时决定了)程序员对程序执行的看法。例如,在面向对象编程中,程序员认为程序是一系列相互作用的对象,而在函数式编程中一个程序会被看作是一个无状态的函数计算的序列。 正如软件工程中不同的群体会提倡不同的「方法学」一样,不同的编程语言也会提倡不同的「编程范型」。一些语言是专门为某个特定的范型设计的(如Smalltalk和Java支持面向对象编程,而Haskell和Scheme则支持函数式编程),同时还有另一些语言支持多种范型(如Ruby、Common Lisp、Python和Oz)。 很多编程范型已经被熟知他们禁止使用哪些技术,同时允许使用哪些。例如,纯粹的函数式编程不允许有副作用;结构化编程不允许使用goto。可能是因为这个原因,新的范型常常被那些习惯于较早的风格的人认为是教条主义或过分严格。然而,这样避免某些技术反而更加证明了关于程序正确性——或仅仅是理解它的行为——的法则,而不用限制程序语言的一般性。 编程范型和编程语言之间的关系可能十分复杂,由于一个编程语言可以支持多种范型。例如,C++设计时,支持过程化编程、面向对象编程以及泛型编程。然而,设计师和程序员们要考虑如何使用这些范型元素来构建一个程序。一个人可以用C++写出一个完全过程化的程序,另一个人也可以用C++写出一个纯粹的面向对象程序,甚至还有人可以写出杂揉了两种范型的程序。.

新!!: Common Lisp和编程范型 · 查看更多 »

Emacs

Emacs(,源自Editor MACroS,宏编辑器),是一个文本编辑器家族,具有强大的可扩展性,在程序员和其他以技术工作为主的计算机用户中广受欢迎。最初由Richard Stallman於1975年在MIT协同蓋伊·史提爾二世共同完成。这一创意的灵感来源于TECO宏编辑器TECMAC和TMACS,它们是由蓋伊·史提爾二世、Dave Moon、Richard Greenblatt、Charles Frankston等人编写的宏文本编辑器。 自诞生以来,Emacs演化出了众多分支,其中使用最广泛的两种分别是:1984年由理查·斯托曼发起并由他维护至2008年的GNU Emacs,以及1991年发起的XEmacs。XEmacs是GNU Emacs的分支,至今仍保持着相当的兼容性。它们都使用了Emacs Lisp这种有着极强扩展性的编程语言,从而实现了包括编程、编译乃至网络浏览等等功能的扩展。 在Unix文化裡,Emacs是黑客们关于编辑器之战的两大主角之一,它的对手是vi(Vim)。.

新!!: Common Lisp和Emacs · 查看更多 »

Emacs Lisp

Emacs Lisp,一種直譯式的腳本語言,為LISP的方言之一,GNU Emacs與XEmacs文字編輯器都使用這個程式語言來扩展他們的功能。它的直譯器是以C語言來實作的。它受到Maclisp的影響很大,但是跟Common Lisp與Scheme有所不同。.

新!!: Common Lisp和Emacs Lisp · 查看更多 »

面向对象程序设计

面向对象程序设计(Object-oriented programming,缩写:OOP)是種具有物件概念的程式編程典範,同时也是一种程序开发的抽象方针。它可能包含資料、、程式碼與方法。对象則指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性,物件裡的程序可以訪問及經常修改物件相關連的資料。在物件導向程式編程裡,電腦程式會被設計成彼此相關的物件。 面向对象程序设计可以看作一种在程序中包含各种独立而又互相调用的对象的思想,这与传统的思想刚好相反:传统的程序设计主张将程序看作一系列函数的集合,或者直接就是一系列对电脑下达的指令。面向对象程序设计中的每一个对象都应该能够接受数据、处理数据并将数据传达给其它对象,因此它们都可以被看作一个小型的“机器”,即对象。目前已经被证实的是,面向对象程序设计推广了程序的灵活性和可维护性,并且在大型项目设计中广为应用。此外,支持者声称面向对象程序设计要比以往的做法更加便于学习,因为它能够让人们更简单地设计并维护程序,使得程序更加便于分析、设计、理解。反对者在某些领域对此予以否认。 当我们提到面向对象的时候,它不仅指一种程序设计方法。它更多意义上是一种程序开发方式。在这一方面,我们必须了解更多关于面向对象系统分析和面向对象设计(Object Oriented Design,简称OOD)方面的知识。許多流行的程式語言是物件導向的,它們的風格就是會透由物件來創出實例。 重要的物件導向程式語言包含Common Lisp、Python、C++、Objective-C、Smalltalk、Delphi、Java、Swift、C#、Perl、Ruby 與 PHP等。.

新!!: Common Lisp和面向对象程序设计 · 查看更多 »

類型系統

在计算机科学中,--系統用于定義如何將程式語言中的數值和zh:運算式;zh-tw:運算式;zh-cn:表达式-归類为许多不同的型別,如何操作这些型別,这些型別如何互相作用。型別可以确认一个值或者一组值具有特定的意义和目的(雖然某些型別,如抽象型別和--型別,在----中,可能不表示為值)。型別系統在各種語言之間有非常大的不同,也許,最主要的差異存在於編譯時期的語法,以及執行時期的操作实现方式。 編譯器可能使用值的靜態型別以最佳化所需的儲存區,並選取對值運算時的較佳演算法。例如,在許多C編譯器中,「浮點數」資料型別是以32 位元表示,與IEEE 754規格一致的單精度浮點數。因此,在數值運算上,C應用了浮點數規範(浮點數加法、乘法等等)。 型別的約束程度以及評估方法,影響了語言的型別。更進一步,程式語言可能就型別多態性部分,對每一個型別都對應了一個極度個別的演算法的運算。型別理論研究型別系統,儘管實際的程式語言型別系統,起源於電腦架構的實際問題、編譯器實作,以及語言設計。.

新!!: Common Lisp和類型系統 · 查看更多 »

预处理器

在计算机科学中,预处理器是程序中处理输入数据,产生能用来输入到其他程序的数据的程序。输出被称为输入数据预处理过的形式,常用在之后的程序比如编译器中。所作处理的数量和种类依赖于预处理器的类型,一些预处理器只能够执行相对简单的文本替换和巨集展开,而另一些则有着完全成熟的编程语言的能力。 一个来自计算机编程的常见的例子是在进行下一步编译之前,对源代码执行处理。在一些计算机语言(例如:C语言)中有一个叫做预处理的翻译阶段。.

新!!: Common Lisp和预处理器 · 查看更多 »

计算机代数系统列表

以下表格给出各计算机代数系统的比较。.

新!!: Common Lisp和计算机代数系统列表 · 查看更多 »

鸭子类型

在程序设计中,鸭子类型(duck typing)是动态类型的一种风格。在这种风格中,一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由"当前方法和属性的集合"决定。这个概念的名字来源于由James Whitcomb Riley提出的鸭子测试(见下面的“历史”章节),“鸭子测试”可以这样表述: 在鸭子类型中,关注点在于对象的行为,能作什么;而不是关注对象所属的类型。例如,在不使用鸭子类型的语言中,我们可以编写一个函数,它接受一个类型为"鸭子"的对象,并调用它的"走"和"叫"方法。在使用鸭子类型的语言中,这样的一个函数可以接受一个任意类型的对象,并调用它的"走"和"叫"方法。如果这些需要被调用的方法不存在,那么将引发一个运行时错误。任何拥有这样的正确的"走"和"叫"方法的对象都可被函数接受的这种行为引出了以上表述,这种决定类型的方式因此得名。 鸭子类型通常得益于"不"测试方法和函数中参数的类型,而是依赖文档、清晰的代码和测试来确保正确使用。.

新!!: Common Lisp和鸭子类型 · 查看更多 »

關係運算子

係運算子在計算機科學的編程語言中,是測試或定義兩個實體之間某種關係的構造或操作符。這些包括數值等式和不等式(例如 5.

新!!: Common Lisp和關係運算子 · 查看更多 »

虛數單位

在數學、物理及工程學裏,虛數單位標記為 i\,\!,在电机工程和相关领域中则标记为j\,,这是为了避免与电流(记为i(t)\,或i\,)混淆。虛數單位的發明使實數系統 \mathbb\,\! 能夠延伸至复数系統 \mathbb\,\! 。延伸的主要動機為有很多實係數多項式方程式無實數解。例如方程式 x^2+1.

新!!: Common Lisp和虛數單位 · 查看更多 »

GNU多重精度运算库

GNU多重精度运算库(GNU Multiple Precision Arithmetic Library,简称GMP或gmpal)是一个开源的任意精度运算库,支持正负数的整数、有理数、浮点数。它没有任何精度限制,只受限于可用内存。GMP有很多函数,它们都有一个规则的接口。它是C语言写成的,但用为其他很多语言做包装,包括Ada,C++,C#,OCaml,Perl,PHP,python 和 R。GMP主要运用于加密应用和研究、互联网安全应用、计算机代数系统和计算代数研究。GMP的目标是成为最快的大数运算库,GMP是GNU项目的一部分,它在GNU宽通用公共许可证下发表。GMP在许多计算机辅助代数系统中用于整数运算,如Mathematica和Maple。GMP需要使用GCC(GNU编译器套装)编译。.

新!!: Common Lisp和GNU多重精度运算库 · 查看更多 »

GNU软件包列表

此GNU软件包列表列出了由自由软件基金会作为GNU计划的一部分而开发或维护的重要软件包,GNU计划目的是开发完全由自由软件组成的类Unix计算机操作系统。其中许多的软件包与Linux内核一起构建了完整的计算机操作系统。.

新!!: Common Lisp和GNU软件包列表 · 查看更多 »

LISP

LISP是具有悠久歷史的計算機編程語言家族,有獨特和完全括號的前綴符號表示法。起源於西元1958年,是現今第二悠久而仍廣泛使用的高階編程語言。只有FORTRAN編程語言比它更早一年。LISP編程語族已經演變出許多種方言。現代最著名的通用編程語種是Common Lisp和Scheme。 LISP最初創建時受到阿隆佐·邱奇的lambda演算的影響,用來作為計算機程序實用的數學表達。因為是早期的高階編程語言之一,它很快成為人工智能研究中最受歡迎的編程語言。在計算機科學領域,LISP開創了許多先驅概念,包括:.

新!!: Common Lisp和LISP · 查看更多 »

Maxima

Maxima是一种用LISP编写的计算机代数系统(Computer Algebra System),用于公式推导和符号计算,它是一套自由软件,在GNU通用公共许可证下發行。它由麻省理工学院在美国能源部的支持下于60年代末创造的Macsyma演变而来。Macsyma後來慢慢走上商業化的道路,自1982年开始,Bill Schelter教授默默地维护基于能源部获得的代碼的Macsyma,他把這個軟體叫做Maxima,開放源码。因為版權的問題,Maxima一直没有公開發行,--有少數人知道有這個軟體的存在。1998年,Maxima終於得到公開發行的許可,這已是Schelter教授努力了16年之後的事。Schelter教授在2001年去世,不過已經正式成為合法開放源碼軟體,因此陸續有支持開放源碼的程式設計師,學者投入Maxima的開發工作。 Maxima的前身Macsyma在當時是非常創新的軟體。現在流行的商業计算机代数系统軟體Maple及Mathematica,都是受到Macsyma的啟發而設計出來的。.

新!!: Common Lisp和Maxima · 查看更多 »

Mixin

Mixin是面向对象程序设计语言中的类,提供了方法的实现。其他类可以访问mixin类的方法而不必成为其子类。Mixin有时被称作"included"而不是"inherited"。mixin为使用它的class提供额外的功能,但自身却不单独使用(不能单独生成实例对象,属于抽象类)。因为有以上限制,Mixin类通常作为功能模块使用,在需要该功能时“混入”,而且不会使类的关系变得复杂。使用者与Mixin不是“is-a”的关系,而是「-able」关系 Mixin有利于代码复用又避免了多继承的复杂。使用Mixin享有单一继承的单纯性和多重继承的共有性。接口与mixin相同的地方是都可以多继承,不同的地方在于 mixin 是带实现的。Mixin也可以看作是带实现的。这种设计模式实现了依赖反转原则。.

新!!: Common Lisp和Mixin · 查看更多 »

Qt

Qt(,發音同「cute」)是一个跨平台的C++應用程式開發框架。廣泛用於開發GUI程式,這種情況下又被称为部件工具箱。也可用於開發非GUI程式,比如控制台工具和伺服器。Qt使用於OPIE、Skype、VLC media player、Adobe Photoshop Elements、VirtualBox與Mathematica以及被Autodesk 、歐洲太空總署、夢工廠、Google、HP、KDE、盧卡斯影業、西门子公司、沃尔沃集团, 华特迪士尼动画制作公司、三星集团、飞利浦、Panasonic 所使用。 它是Digia公司的产品。Qt使用標準的C++和特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些巨集。通過語言綁定,其他的程式語言也可以使用Qt。 Qt是自由且開放原始碼的軟體,在GNU較寬鬆公共許可證(LGPL)條款下發布。所有版本都支援廣泛的編譯器,包括GCC的C++編譯器和Visual Studio。.

新!!: Common Lisp和Qt · 查看更多 »

Reddit

Reddit()是一个娱乐、社交及新聞网站,注册用户可以将文字或連結在網站上發布,使它基本上成為了一個電子佈告欄系統。注册用户可以对这些帖子进行投票,结果将被用来进行排名和决定它在首页或子页的位置。網站上的內容分類被稱為「subreddit」。subreddit的內容包括新聞、電子遊戲、電影、音樂、書籍、健身、食物和圖片分享等。 Reddit由在維吉尼亞大學讀書時當時是室友的和亞歷克西斯·瓦尼安於2005年創立。康泰納仕於2006年收購了該網站。Reddit於2011年9月脫離康泰納仕,成為康泰納仕母公司先進出版公司的子公司。雖然先進出版公司是其最大股東,但Reddit是獨立運作的。Reddit公司的總部設在加利福尼亚州的旧金山。在2014年10月,Reddit在由主持,包括馬克·安德森、彼得·泰爾、、史努比狗狗和謝拉·力圖的一輪投資中獲得5000萬美元。他們的投資使Reddit公司的估值達5億美元。.

新!!: Common Lisp和Reddit · 查看更多 »

Redis

Redis是一个使用ANSI C编写的开源、支持网络、基于内存、可选的。从2015年6月开始,Redis的开发由赞助,而2013年5月至2015年6月期间,其开发由Pivotal赞助。在2013年5月之前,其开发由VMware赞助。根据月度排行网站DB-Engines.com的数据显示,Redis是最流行的键值对存储数据库。.

新!!: Common Lisp和Redis · 查看更多 »

S-表达式

所谓“S-表达式/運算式”(S-expression)或“sexp”(其中“S”代表“符号的”),是指一种以人类可读的文本形式表达半结构化数据的约定。S-表达式可能以其在Lisp家族的编程语言中的使用而为人所知。其他应用则见于由Lisp衍生的语言,如,以及如IMAP之类通信协议中作为标记出现和约翰·麦卡锡的。语法细节和所支持的数据类型虽因语言而异,但这些语言间最通用的特性则是使用S-表达式作为括号化的前缀表示法(有时亦作剑桥波兰表示法)。.

新!!: Common Lisp和S-表达式 · 查看更多 »

Scheme

Scheme是一种函数式编程语言,是Lisp的两种主要方言之一(另一种为Common Lisp)。不同于Common Lisp,Scheme遵循極簡主義哲学,以一个小型语言核心作为标准,加上各种强力语言工具(语法糖)来扩展语言本身。 麻省理工學院與其他院校曾采用Scheme教授计算机科学入門課程。著名的入門教材《-zh-hans:计算机程序的构造和解释;zh-hant:電腦程式的構造和解釋-》(SICP)利用Scheme來解釋程序設計 。Scheme的廣泛受眾被視為一個主要優勢,然而不同實現之間的差異成為了它的一個劣勢。 Scheme最早由麻省理工學院的蓋伊·史提爾二世與傑拉德·傑伊·薩斯曼在1970年代發展出來,並由兩人發表的「λ論文集」推廣開來。 Scheme語言與λ演算關係十分密切。小寫字母「λ」是Scheme語言的標誌。 Scheme的哲学是:设计计算机语言不应该进行功能的堆砌,而应该尽可能减少弱点和限制,使剩下的功能显得必要。Scheme是第一個使用靜態作用域的Lisp方言,也是第一个引入“干净宏”和第一类续延的编程语言。.

新!!: Common Lisp和Scheme · 查看更多 »

Snappy

Snappy(以前称Zippy)是Google基于LZ77的思路用C++语言编写的快速数据压缩与解压程序库,并在2011年开源。它的目标并非最大压缩率或与其他压缩程序库的兼容性,而是非常高的速度和合理的压缩率。使用一个运行在64位模式下的酷睿i7处理器的单个核心,压缩速度250 MB/s,解压速度500 MB/s。压缩率比gzip低20-100%。 Snappy广泛应用在Google的项目,例如BigTable、MapReduce和Google内部RPC系统的压缩数据。它可在开源项目中使用,例如Cassandra、Hadoop、LevelDB、MongoDB、和Lucene。解压缩时会检测压缩流中是否存在错误。Snappy不使用内联汇编并且可移植。.

新!!: Common Lisp和Snappy · 查看更多 »

Tk

Tk是一開放原始碼的图形用户界面开发工具,提供許多常用的圖形介面元件(像是選單、按鈕之類)具有跨平台、輕量化等特色。 Tk最初發展於1991年,是以Tcl腳本語言撰寫的擴充套件,目前另有Perl、Python、Ruby、Common Lisp等多種版本,並可在Linux、Unix、Apple Macintoch、Windows等平臺上運行。 从Tcl/Tk 8开始,软件搭建的图形界面看起来将“与本地系统一致”。8.5版引入了一个新的主题引擎,它在字体渲染方面也有改进。该引擎最初叫Tk Tile,但现在通常被称为"themed Tk"。8.6版的更新则支持了PNG格式,以及倾斜文字。.

新!!: Common Lisp和Tk · 查看更多 »

Weblocks

Weblocks是一个用Common Lisp编写的以续延为基础的Web应用开发框架。按照官方网站上的说法,它是为了让敏捷的Web应用程序开发尽可能地高效和简单而被开发出来的工具。Weblocks运行在Hunchentoot这个Web服务器上,后者同样使用Common Lisp进行编写。 Category:网站开发 Category:Common Lisp.

新!!: Common Lisp和Weblocks · 查看更多 »

极坐标系

在数学中,极坐标系(Polar coordinate system)是一个二维坐标系统。该坐标系统中任意位置可由一个夹角和一段相对原点—极点的距离来表示。极坐标系的应用领域十分广泛,包括数学、物理、工程、航海、航空以及机器人领域。在两点间的关系用夹角和距离很容易表示时,极坐标系便显得尤为有用;而在平面直角坐标系中,这样的关系就只能使用三角函数来表示。对于很多类型的曲线,极坐标方程是最简单的表达形式,甚至对于某些曲线来说,只有极坐标方程能够表示。.

新!!: Common Lisp和极坐标系 · 查看更多 »

条件运算符

在许多程序设计语言中,条件运算符(conditional operator, ?:)是一个基本的条件语句。条件运算符最初起源于BCPL程序设计语言。.

新!!: Common Lisp和条件运算符 · 查看更多 »

格式化字符串

格式化字符串,是一些程序设计语言在格式化输出API函数中用于指定输出参数的格式与相对位置的字符串参数,例如C、C++等程序设计语言的printf类函数,其中的转换说明(conversion specification)用于把随后对应的0个或多个函数参数转换为相应的格式输出;格式化字符串中转换说明以外的其它字符原样输出。.

新!!: Common Lisp和格式化字符串 · 查看更多 »

格林斯潘第十定律

格林斯潘第十定律是计算机编程领域,尤其是编程语言领域的一句格言:,菲利普·格林斯潘。 这表现了Lisp语言的灵活性和可扩展性,它包含了理论上编写复杂计算机程序需要的所有功能。而其他编程语言的核心实现却不能提供开发复杂程序的关键性功能支持。.

新!!: Common Lisp和格林斯潘第十定律 · 查看更多 »

指定敍述

在程序設計中,指定敍述(assignment statement),又譯指定指述,會將一個特定的值設定到某個特定的儲存位址去,這個位置被標記成一個特定的變數名稱。換句話說,這個敍述會複製一個值到某個特定變數中。在多數的指令式程式語言中,這種敍述是其中最基礎的結構。 指定敍述的通用表示方法通常是 x.

新!!: Common Lisp和指定敍述 · 查看更多 »

星號

星號(英文:asterisk,拉丁文:asteriscum,意謂「小星星」,來自希臘文 ἀστερίσκος)是印刷符號或字形。之所以稱為星號是因為與一般人印象中的星星相似。電腦科學家與數學家常稱之為「star」或「星」(例如「A*搜尋演算法」和「C*-代數」)。 星號起源於歐洲封建時代,族譜印製者要表示出生日期的符號。最初的形狀是六芒,每一芒都像是由中央散開的淚珠。因此,有些電腦界的圈子稱之為「splat」(狀聲詞,類似中文的「啪」),或許是因為許多早期的列式印表機印出來的星號看起來像是被壓扁的蟲子。 很多文化有自己獨特的星號。中国与日本用的是「※」,看起來像是漢字的「米」。阿拉伯式的星號是六芒星。於某些字體,星號是五芒,阿拉伯星號則為八芒。.

新!!: Common Lisp和星號 · 查看更多 »

星际文件系统

星际文件系统(InterPlanetary File System,缩写IPFS)是一个旨在创建持久且分布式存储和共享文件的网络传输协议。它是一种的对等分发协议。在IPFS网络中的节点将构成一个分布式文件系统。它是一个开放源代码项目,自2014年开始由在开源社区的帮助下发展。其最初由Juan Benet设计。.

新!!: Common Lisp和星际文件系统 · 查看更多 »

教育编程语言列表

教育编程语言是一个教育性质的程序设计语言,是一种主要设计于用来学习的工具,是与用于编写真实环境下的应用程序编程语言不大相同的一种编程语言。.

新!!: Common Lisp和教育编程语言列表 · 查看更多 »

传出传入
嘿!我们在Facebook上吧! »