2012年3月22日木曜日

JAVA LISP Upthksv


JAVA LISP upthksv

iPjLISPJAVA

LISPƂFORTRAN̎炢ɌÂłAŋ߂̊w񂩂猩ƁAяLߋ̌ɉf邩܂B
́AmȂƂ̂ŁAFcqJ̉̂uQOIŌ̒^{[JvȂǂƕĂ肪ĕĂ邩AȌ̒ႢƂɂȂĂ܂̂łB
uQOIŌ̉̕PvƂĂACh ̎r[N̉̂𒮂牽{Ȃ̂Ɣ͂łi邢͒ĂȂAn̎ɉĂ jBlɖ{̃vO}͈xLISPɗ܂B ǂłPROLOG̋ȏuPROLOG PROGRAMMING FOR ARTIFICIAL INTELLIGENCEvɂ́A

vO‾Ỏ҂͋ߑLISPł

ƎvƏĂ܂B @
LISP͔ł̂ŁAvȌlƌĂт܂傤B bVBȂǂƂ͑΋ɂȂȂ̂łB

VBW[Ȃ̂BASIC΂炵ł͂ȂāAMSWindows̃vO‾OpVB`[jOĂ邩łāA܂WindowsOŜWȏ̃VFAĂ邩ɑȂ܂B Ԃ΁AقOSłVB͉̖ɂ܂B LISP̂̂܂܂ł͂ȂAIuWFNgwIȊg{ꂽA܂܂ȌIȑāACOMMO/span>

}V ̃Xvł̍¥j
@


ł͂ŁANX̋̓IȎ‚Ă݂܂傤B
ʓIɂ͘_݌vƕ݌vɂ̓Mbv̂łAł͏o肻vw͂Ă܂B

}R̃NX¥̂܂܎Ő݌v܂B

(}W ۂ̃NX)------------ package quilt; import java.io.*; interface SExpression { public void print(DataOutputStream dos) throws IOException; }

̓[_[݂̎̂JĂ܂̂ŁAƂ肠vg̃¥bh`ꂽC^[tFCXƂȂĂ܂B
[_[͍̕¥͂Ȃ΂ȂȂ̂Ōq悤ɁALisp{̂̃[_[ɉ͂C܂B̃NXEvaluatorȂǂ
ljď͂ƕGɂȂĂł傤B


精神病理学の歴史とは何か
  XgQ      ------ Integer.java ------------  package quilt; import java.io.*;  public class Integer extends Number {   private int val;   public Integer() { val = 0; }   public Integer(int i) { val = i; }   public int valueOf() { return val; }   public java.lang.String toString() { return "" + val; }   public Integer add(Integer i)  {     return new Integer(val + i.valueOf());   }   public Integer subtract(Integer i)  {     return new Integer(val - i.valueOf());   }   public Integer multiply(Integer i)  {     return new Integer(val * i.valueOf());   }   public Integer divide(Integer i)  {     return new Integer(val / i.valueOf());   }   public void print(DataOutputStream dos) throws IOException {     try {       dos.writeInt(val);     }     catch (IOException e) {       throw e;     }   } }  XgQ͐̃NXłD̒ʂAprint֐ȊO͎Zp¥bh`Ă܂BɃV{NXA
iXgRjAXgNXiXgSjĂ݂܂傤B

   XgR@   ------ Symbol.java ------------  package quilt; import java.io.*;  public class Symbol extends Atom {   java.lang.String str = null;    public Symbol() {   }   public Symbol(java.lang.String s) {     str = new java.lang.String(s);   }   public Symbol(char[] ca) {     str = new java.lang.String(ca);   }   public void print(DataOutputStream dos) throws IOException {     try {       dos.writeChars(str);     }     catch(IOException e) {       throw e;     }   } }    XgS@  ------ List.java ------------  package quilt; import java.util.*; import java.io.*;  public class List extends LinkedList implements SExpression {    public List() {     super();   } /**********RgAEg ************   public void add(int index, SExpression element) {     super.add(index, element);   }   public void add(SExpression element) {     super.add(element);   }   public boolean addAll(Collection c) {     super.addAll(c);   }   public void addFirst(SExpression element) {     super.addFirst(element);   }   public void clear() {     super.clear();   }   public Object clone() {     return super.clone();   }   public Object get(int index) {     return (SExpression)super.
トップの基本的なスキンケア製品
get(index); } public Object remove(int index) { return super.remove(index); } public boolean remove(SExpression e) { return super.remove(e); } public Object removeLast() { return super.removeLast(); } public Object set(int index, SExpression e) { return super.set(index, e); } ****************************/ public void print(DataOutputStream dos) throws IOException { try { int n = size(); dos.writeChars("("); for (int i = 0; i < n; i++) { SExpression sexp = (SExpression)get(i); sexp.print(dos); if (i < n - 1) dos.writeChars(" "); } dos.writeChars(")"); } catch (IOException e) { throw e; } } }

V{NX́AString̃oĂ邾̃VvȃNXłBV{͕ϐ֐ƂĎĝŁA
V{̃e[unbVe[uŊǗȂ΂Ȃ܂B
CȂǂLISPJꍇAɍȃnbVe[uĂ̂łAQUILTSchemeł́A
JavaWHashtableg܂B

XgNXSexpressonCvgALinkedListhꂽNXƂȂĂ܂B́A¥[X
cĂ悤add()remove()Ȃǂ̂Rei¥bhI[o[ChȂ΂ȂȂƍlĂ܂B
C++ł΂ł傤BƂ낪JavȁꍇAẽ¥bĥ܂܌ĂׂΎ邱ƂɋCÂ܂B
ŃXg̃¥bhׂ͂ăRgAEgA߂ĒPȃNXɂȂĂ܂B

ŌɃ[_[̃¥[Xт̎s{Lɍڂ܂BiXgTj̃R[h͂܂v‾eBuȂ̂łA
ɂ͑傫ύXƎv܂B
̗‚ł΍KłBLISPVXe͈ʓI}X̂悤ȍ¥Ă܂B
iwCvOubNIIIx^A^AXL[jB

@

i}X LISP̍¥j

́A[_[ƃv^[̏܂B
Xy[X܂ł̂ŁA̓[_[ƃv^[̏ڍׂƃGoGC^[i]j܂B

iRj̃VXe̖ڕW

ł́ALISPgĂ͉悤Ƃ̂ł傤D܂ʓIȗprƂāA



@JAVAAvP[ṼJX^}CYpXNvgƂĎgDMuleEmacs Lisp̂悤Ȃ́AMS-OfficeȂVBA݂Ȃ̂łB


どのようにすぐにまたは父親のために新生児をテストすることができます

AQPIIȃAvP[VƂ̂͂ł邾[U̍Ƃȗł̂łȂ΂Ȃ܂D
[UAVX^------------- package quilt; import java.io.*; import java.util.*; public class lisp { static final int MaxToken = 32; SExpression nil, endOfRead; private String line; static Hashtable symbolTable = null; public lisp() { symbolTable = new Hashtable(); } public static void main(String[] args) { lisp vLisp = new lisp(); vLisp.invokedStandalone = true; DataInputStream in = new DataInputStream(System.in); DataOutputStream out = new DataOutputStream(System.out); for(;;) { try { out.writeUTF("QLisp> "); out.flush(); SExpression exp = reader(in); printer(exp, out); } catch(Exception e) { e.printStackTrace(); } } } static void printer(SExpression se, DataOutputStream dos) throws IOException { if (se == null) return; try { se.print(dos); } catch (IOException e) { throw e; } } static SExpression reader(DataInputStream dis) throws Exception { try { if (skipSpace(dis) == false) return new Nil(); char ch = peekChar(dis); if (isEscape(ch)) return escape(dis); else if (isDigit(ch)) return makeNumber(dis); else //if (isSymbol(ch)) return makeSymbol(dis); // else // return new Nil(); } catch (Exception e) { throw e; } } static boolean skipSpace(DataInputStream dis) throws IOException { char ch = 0; try { for (;;) { do { ch = dis.readChar(); dis.mark(100); } while (Character.isWhitespace(ch)); dis.reset(); if (ch != 0 && ch != ';') { return true; } if (dis.readLine() == null) return false; } } catch (IOException e) { throw e; } } static boolean isEscape(char ch) { switch(ch) { case ' ': case '#': case '.': case ';': case '(': case ')': case '[': case ']': case '¥¥': case '^': case ',': case '|': // case '¥': return true; default : return false; } } static boolean isDigit(char ch) { if (Character.
isDigit(ch)) return true; return false; } static SExpression escape(DataInputStream dis) throws Exception { char ch; try { ch = peekChar(dis); switch(ch) { case '(': case '[': return makeList(dis); case '¥¥': case '|': return new Nil(); default : return new Nil(); } } catch (Exception e) { throw e; } } static SExpression makeNumber(DataInputStream dis) throws IOException { return (SExpression)new Integer(dis.readInt()); } static SExpression makeSymbol(DataInputStream dis) throws Exception { char[] str = new char[256]; int i; try { for (i = 0; i < MaxToken; i++) { str[i] = dis.readChar(); if (Character.isWhitespace(str[i])) break; } str[i] = '¥0'; Symbol symbol = new Symbol(str); symbolTable.put(new java.lang.String(str), symbol); return symbol; } catch (Exception e) { throw e; } } static SExpression makeString(DataInputStream dis) throws IOException { char[] str = new char[256]; char ch; int i = 0; try { for (;;) { if (peekChar(dis) == '¥0') return new Nil(); if (peekChar(dis) == '"') { dis.readChar(); break; } } } catch (IOException e) { throw e; } str[i] = '¥0'; return new String(str); } static SExpression makeList(DataInputStream dis) throws Exception { List list = new List(); SExpression sexp = null; try { for (;;) { if (peekChar(dis) == '¥0') return new Nil(); if (peekChar(dis) == ')') { // end of list dis.readChar(); break; } sexp = reader(dis); java.lang.String name = sexp.getClass().getName(); if (name.equals("quilt.Nil")) return new Nil(); list.

These are our most popular posts:

Programming in Emacs Lisp: car cdr cons

2002年4月10日 ... Lisp では car 、 cdr 、そして cons が基本的な関数である。 cons 関数はリストを作るの に使われ、 car 関数と cdr 関数は ... 一方、 car と cdr の名前の由来は難解である。 car は `Contents of the Address part of the Register というフレーズの頭文字から来て おり、 cdr ... が、単に時代遅れであるというだけでなく、実に25年以上もの間、Lisp に 関わる人々にとって全く見当はずれのものであった。 ..... 実際どのように働くかを見る ために、まず次のS式を評価して、変数の値を家畜のリストにセットしておく。 read more

On Lisp --- 関数

Lispがそれらをデータ型として提供するとはいったいどのような意味なのだろう? それは Lisp ... $\lambda$式はリストで,3部分から成る: lambda シンボル,仮引数のリスト, 0個以上の式から成る本体だ. ... 関数呼び出しでは関数名が先頭に来て,引数が続く: ... read more

GNU Common Lisp - 紫藤のWiki

と誰もが頭に来ているところに、いきなり日本でKCLが登場したのに世界中の人々は ビックリしたらしい。 ... 歴史的に一番最初に登場したCommon Lisp処理系な為、40代 以上のLisperだとKCL/GCLでCommon Lispを覚えた人間が圧倒的に多く、オジサンの ファンが多い実装である。 一方、基本的に ... 開発コミュニティはGCLがANSI Common Lisp準拠になるように頑張っていたようだが、現在でもサブセットの域を出ていない。 read more

セマンティックウェブ・ダイアリー : Lisp

2011年10月26日 ... McCarthyはサンフランシスコにきて,ニューヨークで感動的なトークをして, スタンフォードにも来ていて講演に茶々を入れていましたが,欧州にはこられなくって ... もうこれまでのLispの歴史と最近のLispについて半分以上書きましたから,あと会議の 話を追加して完成にしたいと思っています. ... どう勉強したかというと,まず最初は ... read more

Related Posts



0 コメント:

コメントを投稿