zoukankan      html  css  js  c++  java
  • newlisp

    Windows で使う場合

    Windoows用のインストーラからインストールすると、newLISP のIDE用のアイコンが出来るのでそこから使ってもいいし、コマンドプロンプトで newlisp と入力して実行してもいい。 コマンドプロンプトからの利用で、複数行の記述をしたい場合は、

    [cmd] 
    (set 'a "a" 'b "bbb")
    (+ 1 2 3)
    [/cmd]
    

    といった風に [cmd] [/cmd] で挟んで記述する。 newLISP のIDEを使う場合、上がエディタ(コード)で下がプロンプトになる。[ALT]+R でコードを実行する。

    情報源など

    基本的なところ

    • コメントは ";" か "#" を利用可能。複数行のコメントはない。
    • リスト、シンボル、lambda、式 があるよ。
    • リストの例
      • '() … 空リスト
      • '(3) … 整数
      • '("こんにちは" "三河屋です") … 文字列2つのリスト
      • '("こんにちは" 2 opt) … 文字列と整数とシンボルのリスト
      • '((a b c) (1 2 3)) … リスト2つのリスト
      • '("こんにちは" "三河屋です") … 文字列2つのリスト
      • ドット対はないよ
    (list 'a 'b)
    > (a b)
    
    • car, cdr はないよ。代わりに first(≒ car)、rest(≒ cdr)
    • シンボルの例
      • (set 'text "こんちは") … シンボルに値を割り当て
      • text → "こんちは" … シンボルを評価すると"こんちは"
      • mirrorman → nil … 未定義のシンボルを評価すると nil
      • (set 'opt1 true 'opt2 nil) … opt1をtrue、opt2 を nil に。
      • true → true … true の評価は true (ブーリアンの true)
      • nil → nil … nil の評価は nil (ブーリアンの false)
    • lambda 式 … あるよ
    (set 'f (lambda (n) (+ n n)))
    => (lambda (n) (+ n n))
    
    • fn はlambdaの代わりに使えるよ
    (set 'f (fn (n) (+ n n)))
    => (fn (n) (+ n n))
    
    • lambda はシンボルじゃなくて、特別なリスト扱い
    (length (lambda (n) (+ n n)))
    > 2
    (first (lambda (n) (+ n n)))
    > (n)
    
    • lambda 式は無名関数として使われるよね
    (apply (lambda (n) (+ n n) '(123))
    > 246
    (map (lambda (n) (+ n n) '(1 2 3))
    > (2 4 6)
    
    • シンボルに lambda 式を定義して関数として使えるよね
    (set 'double (lambda (n) (+ n n))
    > (lambda (n) (+ n n)
    (double 123)
    > 246
    
    • もうちょっと短かく
    (define (doudle n) (+ n n))
    > (lambda (n) (+ n n)
    (double 123)
    > 246
    

    真・偽

    • 真になるもの: 偽になるもの以外。 0や"" 空文字も真。
    • 偽になるもの: nil、() 空リスト。

    シンボルと関数の命名規則

    1. 変数シンボルは、次の文字から始まってはならない:
      • # ; " ' ( ) { } . , 0 1 2 3 4 5 6 7 8 9
    2. + または - で始まる変数シンボルは、二文字目に数字を使うことはできない。
    3. 変数名の内部には、以下の文字を除く、どんな文字も許される:
      • " ' ( ) : , 半角スペース
      • これらは、変数シンボルの終りを意味する。
    4. [(左角括弧)で始まり、](右角括弧)で終わるシンボルは、右角括弧を除くどんな文字を含んでもよい。
    • newLISP では適正なシンボル名の例
    myvar
    A-name
    X34-zz
    [* 7 5 ()};]
    [俺]
    *111*
    

    日本語

    • set-locale で現在のロケールを調べたり、変えられたりする。日本の場合、小数点の記号は標準と一緒の"."。
    (set-locale "JPN")
    > ("Japanese_Japan.932" ".")
    (set-locale "DEU")
    > ("German_Germany.1252" ",")
    
    • newLISP の UTF-8 対応バージョンにするとUTF8関連の関数が使える。
    以下、例
    (utf8len "おれはジャイアン")
    > 8
    
    ; utf8じゃない長さだと
    (length "おれはジャイアン")
    >24
    
    • UTF-8 対応バージョンは、別配布なので別途DLして差し替えて(あるいはUTF-8用でインストールして)使う。
  • 相关阅读:
    jade反编译,把html编译成jade
    runtime环境下的jade
    jade过滤器
    jade-render-renderFile
    【[USACO17DEC]Standing Out from the Herd】
    bzoj 1396: 识别子串
    bzoj 4327:JSOI2012 玄武密码
    hihocoder 后缀自动机四·重复旋律6
    hihocoder 后缀自动机四·重复旋律7
    【[CTSC2012]熟悉的文章】
  • 原文地址:https://www.cnblogs.com/dearplain/p/3147044.html
Copyright © 2011-2022 走看看