LISP Scheme Part2

このエントリーをはてなブックマークに追加
936925:01/12/10 22:05
聞くだけなのもなんなので一桁変換なら
(defun number_change (x)
(cond
       ((eql x '0) (setf x '0))
((eql x '1) (setf x '1))
((eql x '2) (setf x '2))
((eql x '3) (setf x '3))
((eql x '4) (setf x '4))
((eql x '5) (setf x '5))
((eql x '6) (setf x '6))
((eql x '7) (setf x '7))
((eql x '8) (setf x '8))
((eql x '9) (setf x '9))
)
)

まぁこの程度の知識しかないです(;´Д`)
937デフォルトの名無しさん:01/12/10 22:09
>>936
なんか頭悪い気がするんだけど、気のせいでしょうか。
938デフォルトの名無しさん:01/12/10 22:15
といいつつジブンもあんま変わらないかも
(define (number_change x)
(cdr(assq x '((0 . 0)(1 . 1)
(2 . 2)(3 . 3)
(4 . 4)(5 . 5)
(6 . 6)(7 . 7)
(8 . 8)(9 . 9)))))
939デフォルトの名無しさん:01/12/10 22:30
テーブルがfixedなassoc系関数は、コンパイラがもっと速い
手段にすげ替えてくれるとうれしいんだけど。
940デフォルトの名無しさん:01/12/10 22:38
リスト遊ビマンセー

(defun 線路は続くよどこまでも ()
  (線路は続くよどこまでも))
941925:01/12/10 22:47
>>937
事実です(藁

二桁以上はどうするかってはなしで…
めんどいからその部分だけC言語使おうかな
942デフォルトの名無しさん:01/12/10 22:52
>>941
lispはシンボルを使って何かするのは得意だけど、
そのシンボルを分解したりするって処理は向いてないんじゃないかな。
lispでやる利点なさそうだし。
その辺のトークンの問題はreaderの時点で解決してるべき。
943デフォルトの名無しさん:01/12/10 22:57
>>941
GCL でどーかはわからんが。
(defun hoge (str)
(map 'string
#'(lambda (c)
(if (char<= #\0 c #\9)
(code-char
(+ (char-code #\0)
(- (char-code c)
(char-code #\0))))
c))
str))
(hoge "12345あいう")
"12345あいう"
944925:01/12/10 23:44
>>943
おお、VeryThx!
明日にでもGCLで試してみます!
945おやつは:01/12/11 00:55
カールってもう食べた人いる?
946デフォルトの名無しさん:01/12/11 01:14
「型なし言語逝ってよし」というスレを読んでて
思ったんだけど, lisp ってビジネス用途に
多人数で共同開発する場合はどうなんでしょうか.
自分で作る分には楽しいんだけど,
保守とかデバッグはどうなんだろう.

>>935 とも関係ある話だけど.
947945:01/12/11 01:22
>>946
いまや大企業でも多人数は珍しいですよ。せいぜい10人じゃないですか?
3,4名の開発がほとんどでは?
AgileAllianceにみられるように、変化につよい、小回りの利く
開発手法はお客さんも求めてるなぁと日々実感してますよ。

Perl,SmallTalk,Python,Ruby,Lisp,Java,C++,Cを
適所適材っつーかんじで
組織やチームの文化も考えて使い分けるのがいいのじゃないの
でしょうか。

前置きながくなったけど、ペアプログラミング可能な言語だと思うので
メンタリングといゆか教えるのが好きで皆から信頼されてる
プログラマがチームに1人いるならLispはOKでしょう。
保守、デバッグについては、Unitテストを活用すべし。でしょう。
948デフォルトの名無しさん:01/12/11 03:21
>>944
別解
(defun hoge (str)
 (map 'string
    #'(lambda (c)
  (let ((pos (position c "0123456789")))
   (if pos (char "0123456789" pos) c))
    str))

(しかし、EUCの2バイト文字を1文字と扱えるのか?ダメだと思うが…)
>>942
つーか、シンボルは分解するようなものじゃないだろ?
950926:01/12/11 10:17
>928-929
わざわざcygwin版探してるのは挙動が素直そうだからです
SCMはDOSアプリだしMIT版は謎の独自コンソールだし
他のは不安定なGUI版だしで処理系探しに疲れました...
>>950
Guileは?
あと、SCMをcygwinでコンパイルするとか。
952925:01/12/11 20:54
>943
xyzzyだと動作確認できたけどGCLだと無理みたいです
エラー内容
>Error: "0" is an illegal character name.
>Fast links are on: do (si::use-fast-links nil) for debugging
>Error signalled by LOAD.
>Broken at LOAD. Type :H for Help.

やっぱ2バイト文字は認識されないのか
953950:01/12/11 23:45
結局makeは諦めてPetite Chez Scheme(http://www.scheme.com/)に落ち着きました。
# それにしてもこんなドメイン使っていいのか?
入力用のプロンプト"> "を標準出力に吐くのが気になりますが
Windowsのアプリとしては一番挙動がまともっぽいです。
CygwinでもDOSアプリって動かせない?
955950:01/12/12 01:23
>954
Cygwin(というかbash)から16ビットDOSアプリの起動・実行は問題なく出来ます。
ただ、一般的に16bitの処理系にはいろいろ制約があることが多いのでなんとなく避けたかったんです。
今日は次スレ日和ですな
957デフォルトの名無しさん:01/12/12 09:01
>952
こんなのはどうですか?
(defun agi (str)
(labels ((agi% (new-old-alist list)
(if (endp new-old-alist) list
(let* ((new (caar new-old-alist))
(old (cdar new-old-alist))
(pos (search (map 'list #'identity old) list)))
(if pos
(agi% new-old-alist
(concatenate 'list
(subseq list 0 pos)
new
(subseq list (+ pos (length old)))))
(agi% (cdr new-old-alist) list))))))
(map 'string #'identity
(agi% '(("1" . "1")
("2" . "2")
("3" . "3")
("4" . "4")
("5" . "5")
("6" . "6")
("7" . "7")
("8" . "8")
("9" . "9")
("0" . "0"))
(map 'list #'identity str)))))


(setq yen "1231234567890円")
(agi yen)
958デフォルトの名無しさん:01/12/12 18:49
ケント・ディヴィグのプログラミング言語Scheme読んでるけど、
これって難しいよね?
Schemeのことについてあらかじめ知ってないと、あの説明では
理解出来ないと思う。
でも、Schemeを知ってる人が知識を確認したり、知識を磨くの
には素晴らしいのは確かだと思う。
C++におけるプログラミング言語C++と同じような立場の本だね。
959925:01/12/12 19:15
>>957
いまGCLで動作確認しました。本当にありがとうございますm(__)m

ところで、ここにいるLISP使ってる人達ってLISP歴どのくらいなんだろう(汗
私は半年ですけど・・・
960デフォルトの名無しさん:01/12/12 21:33
>>958
あの本は Lisp 系 の基本を知らないと難しいが,
知っている人なら当り前のことで簡単過ぎるような気がする.
基本的な概念への入門的な説明が少ないような気がする.
continuation の概念なんか, 本文の説明よりも付録の R5 を
読んだ方がわかりやすかった. 一度理解してから本文を読むと
なにを言っているのかわかるんだけど.

という訳で, 個人的には中途半端な本のような気がする.
ただリファレンスとしては便利だと思う.
あの本は、うまいコードが載ってる気がするけど、
コードの解説はあまりしてないから読むのに苦労する。
作者のオナニーにしか見えん。
962デフォルトの名無しさん:01/12/12 22:32
標準的な本でしょう。
よくある「プログラミング言語○○」の一種。
SchemeはこれとSICPと入門本でとりあえずOK。
963デフォルトの名無しさん:01/12/12 22:56
Schemeの入門は「Scheme手習い」直感で学ぶLisp が良かったです。
Lispの概念は「初めての人のためのLISP」(竹内郁雄=著)が奥深いと思います。
いずれも絶版なのが残念です。
964名無しさん@Emacs:01/12/13 02:31
>>963
初めての人のためのLISPはいいですね。
対話形式で話が進むので最初しまったと思いましたが。
「Schemeの手習い」はLittle Schemerの訳本ですね。
原著でも、むずかしい英語じゃないし
(っていうか、それ以前に文章量が少ないし)
原著で読めばいいんじゃないですか?
ちなみに僕はLittle Schemerを読んで
Scheme好きになりました。
966このスレの1:01/12/13 12:35
誰か次スレ立てて下さい
>>966
じゃあ、立てます。
968ななしさん:01/12/13 13:36
>>921
アメリカのComputer Scienceの人にも評価は高いよ。
streamの導入のあたりはなんど読んでもぞくぞくする。
でも今は教育用の言語としてはJava一人勝ちだからね。
969967:01/12/13 14:14
970このスレの1:01/12/13 16:04
ありがとう>967
971BASICER:01/12/17 07:40
誰かSIRをXLisp-statで走らせた方います???
9721000:02/02/03 03:50
まもなくここは 乂1000取り合戦場乂 となります。

      \∧_ヘ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!!       ,,、,、,,,
    /三√ ゚Д゚) /   \____________  ,,、,、,,,
     /三/| ゚U゚|\      ,,、,、,,,                       ,,、,、,,,
 ,,、,、,,, U (:::::::::::)  ,,、,、,,,         \オーーーーーーーッ!!/
      //三/|三|\     ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ∪  ∪       (    )    (     )   (    )    )
 ,,、,、,,,       ,,、,、,,,  ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ,,、,、,,,       (    )    (    )    (    )    (    )
973埋め立て屋:02/02/04 21:24
974倉庫に逝く前に:02/03/21 23:44
記念カキコ。

今まで、C/C++, perl, java, elisp とかじってきたけどこれから scheme 信
者になります。scheme カコ(・∀・)イイ!! 立派な schemer になれますように。
975cmlisp:02/04/26 00:05
>>761
cmlisp は、CM-2 で実装されました。しかし、data paralle な計算の
Nest が高速に扱えず速度が出ないため、Thinking Machines から商品と
して売られることはありませんでした。その後、CMU の Guy Blelloch
によってこの問題の解決手法が提案され NESL という言語があります。
NESL はフリーで手に入ります。MPI にも対応しているようなので
PC Cluster で NESL を動かせるかもしれません。
976無名λ式:02/04/26 10:41
>>975
> cmlisp は、CM-2 で実装されました。

それは、*Lispじゃない?

Connection Machine Lispは、SIMDじゃ実装しにくいからね。
αapplyとかね。
現スレッド。一応貼っとくね。
LISP Scheme Part4
http://pc.2ch.net/test/read.cgi/tech/1016211619/l50
test
u
u 
u  
u   
u     
u      
u