X



【普通のやつらの】 Arc Language 0 【上を行け】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2008/02/04(月) 13:22:29
プログラミング言語Arc

あのPaul Grahamが長年考案しつつもベーパーウェアだったArcがとうとう発表された。
これを使えば今日から君もスーパーハッカーだ(*注: Arcは現在のところASCII以外の
文字を適切に扱えません)。

公式サイト
http://www.arclanguage.org/
インストール
http://www.arclanguage.org/install
チュートリアル
http://ycombinator.com/arc/tut.txt
非公式リファレンス
http://practical-scheme.net/wiliki/arcxref

* なぜArcはとりたててオブジェクト指向でないのか
http://practical-scheme.net/trans/noop-j.html
0004デフォルトの名無しさん
垢版 |
2008/02/04(月) 18:18:13
文字列を内部的にはリストにしてるんかいなぁ?
arc> (subst 'a '(b) '(a b c))
"aac"
arc> (+ '(a b c) '(d e f))
(a b c d e f)
arc> (+ "abc" "def")
"abcdef"
0005デフォルトの名無しさん
垢版 |
2008/02/04(月) 18:24:27
慣れるとわりといいかも

arc> (= x '((a . a1)(b . b1)))
((a . a1) (b . b1))
arc> x
((a . a1) (b . b1))
arc> (= (caar x) 'z)
z
arc> x
((z . a1) (b . b1))
arc>
0010デフォルトの名無しさん
垢版 |
2008/02/05(火) 00:41:19
いまさら、こんな糞言語使わなくても、動的言語ならrubyでいいだろ。
0013デフォルトの名無しさん
垢版 |
2008/02/05(火) 00:57:57
>>10
わかりやすすぎ
0014デフォルトの名無しさん
垢版 |
2008/02/05(火) 01:08:27
マジな話、arcがrubyより優れている所ってあるの?
0018デフォルトの名無しさん
垢版 |
2008/02/05(火) 01:21:10
まだまだこれからってことだな。5年後まだ残ってたら使ってみるよ。
0020デフォルトの名無しさん
垢版 |
2008/02/05(火) 01:43:06
>>8
あ、ごめん、やっぱり subst の引数は seq になってるから
まだ、string にしか実装されてないってことだった。
0021デフォルトの名無しさん
垢版 |
2008/02/05(火) 01:52:50
だれかEmacsの環境作れてるひといる?
inferior-lisp-programでArcを指定する方法はやったんだけど、
SLIME とかで使えんのかな
0024デフォルトの名無しさん
垢版 |
2008/02/05(火) 07:36:38
>>20

seq ってのは文字列とリストのことなんかね。

arc> (findsubseq '(c) '(a b c d))
2
arc> (findsubseq "c" "abcd")
2
arc>
0026デフォルトの名無しさん
垢版 |
2008/02/05(火) 17:38:15
とりあえず階乗。
Schemeと何が違うんじゃ ってのは勘弁して。

(def fact (n)
 (if (is n 0)
   1
   (* n (fact (- n 1)))))
0029デフォルトの名無しさん
垢版 |
2008/02/05(火) 19:47:27
>>27
Schemeはマクロやモジュールをどうするかで悩んでる
その結果、変な言語でマクロを記述したりR6RSでREPLがなくなったりしてる
Arcはその辺に関して楽観的というか何も考えてないっぽい
0031デフォルトの名無しさん
垢版 |
2008/02/05(火) 20:07:05
試してみた。

arc> (is 1 1)
t
arc> (is 'a 'a)
t
arc> (is "a" "a")
t
arc> (is '(a b) '(a b))
nil
arc> (iso '(a b) '(a b))
t
arc>
0034デフォルトの名無しさん
垢版 |
2008/02/05(火) 21:57:50
Pythonのほうが断然いいね
0043デフォルトの名無しさん
垢版 |
2008/02/05(火) 23:00:05
ArcのうちSchemeで書かれたコアな部分は1000行くらいなんで読んでる。
けっこう発見があって面白い。黒川利明先生のLispの本にあったLispでLispを記述
する部分を思い出している。

ところでnamespace-set-variable-value!ってどこで定義しているのかと探しても
見つからない。プリミティブだった。へ〜。そんなのあるんだ。

(namespace-set-variable-value! 'a 1)
> a
1
> namespace-set-variable-value!
#<primitive:namespace-set-variable-value!>
>
0047デフォルトの名無しさん
垢版 |
2008/02/05(火) 23:14:38
:aでSchemeに抜けて acompileを使うとコンパイルされた結果が
Schemeファイルとして出力される。
> (acompile "fact.arc")
#t
>
((lambda ()
  'nil
  (ar-funcall3 _sref _sig '(n . nil) 'fact)
  ((lambda ()
   'nil
   (if (not (ar-false? (ar-funcall1 _bound 'fact)))
    ((lambda ()
      'nil
      (ar-funcall1 _disp "*** redefining ")
      (ar-funcall1 _disp 'fact)
      (ar-funcall1 _writec #\newline)))
    'nil)
   (begin
    (let ((| fact|
        (lambda (n)
         'nil
         (if (not (ar-false? (ar-funcall2 _is n 0)))
          1
          (ar-funcall2
           _*
           n
           (ar-funcall1 _fact (ar-funcall2 _- n 1)))))))
     (namespace-set-variable-value! '_fact | fact|)
     | fact|))))))
0053デフォルトの名無しさん
垢版 |
2008/02/05(火) 23:40:22
三角関数がないのは(xdef 'sin sin)をac.scmに追加すれはOK。
で、xdefで関数名に _ を追加して名前空間にセットしているらしい。

(sin 3.14)がコンパイルされると
(ar-funcall1 _sin 3.14)

1000行くらいなら読めるしPaul Grahamが残したらしいコメントから
彼の思考過程を探ることもできそうだ。こりゃ、面白いぜ。
0062デフォルトの名無しさん
垢版 |
2008/02/06(水) 22:42:45
逆。S式に(逆向きに)囚われてるのはMatzなんだから
> S式に囚われている限りRubyは勝てないね
だよ。
0064デフォルトの名無しさん
垢版 |
2008/02/06(水) 22:45:10
arcってschemeと何が違うんだよ。

単なるschemeの別バージョンならschemeスレでやれってこと。
糞スレ立てるなってこと。
0067デフォルトの名無しさん
垢版 |
2008/02/06(水) 23:29:34
57の人には感心してしまった。

(ac s env) のssyntax? って何だろう?と首をひねっていた。
car:cdr は〜、なるほど。

cccの使い方ってそれはバックトラック?

忙しいのかね〜。出てきて教えて欲しいね〜。
0068デフォルトの名無しさん
垢版 |
2008/02/07(木) 00:10:35
Lisp-2 + パッケージシステム + legacy macro = CL
Lisp-1 + hygienic macro = Scheme
Lisp-1 + legacy macro - パッケージシステム = Arc

らしい。ここの shiro さんのコメントより。
ttp://d.hatena.ne.jp/archacker/20080203/1201988205#c
0069デフォルトの名無しさん
垢版 |
2008/02/07(木) 00:18:28
>>67
57じゃないけど、このcccの使い方はいわゆる大域脱出ってやつかな。

Common Lispだとblock/return-from、他の言語だとtry/catch/throw等の
例外機構を使う。
007067
垢版 |
2008/02/07(木) 00:22:36
>>69
なるほど〜。

0071デフォルトの名無しさん
垢版 |
2008/02/07(木) 00:34:46
>>68
マクロは竹内先生の本で覚えたのでlegacy macroの方が
自分にとってはわかりやすい。

Arcの方がなんとなくLispっぽいし気楽な感じでいいかも。
0074デフォルトの名無しさん
垢版 |
2008/02/07(木) 00:54:04
>>72
あーそうだね、そのまま引用しちゃったから気がつかなかった。

ちょっと補足。
関数と変数の名前空間に区別がないのがLisp-1で、区別があるのがLisp-2。
0077デフォルトの名無しさん
垢版 |
2008/02/07(木) 11:22:18
>>75
いやー、あの人は現状のArcの出来だったらボロクソに言うと思うけどww

今後Arcは開発コミュニティによってどう育って行くのか楽しみだね。
0078デフォルトの名無しさん
垢版 |
2008/02/07(木) 13:46:02
黒田さんじゃなくても現状のArcは出来はアレだと思うだろ
バージョン0のものを叩くってのは空気の読めないアホだけだよ
0079デフォルトの名無しさん
垢版 |
2008/02/07(木) 21:39:43
trace untrace って無いみたいなのでしょうがなく
こんなことをやってみた。
arc> :a
done
> (require (lib "trace.ss"))
> (trace _fact)
(_fact)
> (tl)
Use (quit) to quit, (tl) to return here after an interrupt.
arc> (fact 10)
|(_fact 10)
| (_fact 9)
| |(_fact 8)
| | (_fact 7)
| | |(_fact 6)
| | | (_fact 5)
| | | |(_fact 4)
| | | | (_fact 3)
| | | | |(_fact 2)
| | | | | (_fact 1)
| | | |[10](_fact 0)
| | | |[10]1
省略
|3628800
3628800
arc>
もっとスマートは方法はないかな? (ar-funcall(n) ... )をいじればいいのかな。
0080デフォルトの名無しさん
垢版 |
2008/02/08(金) 06:42:25
Arc Forumでジョークなのか$かsevalでScheme関数を呼び出すってのがあるなんてやってた。
そんなの無かったので追加してみた。
(ac s env)に加える。
((eq? (xcar s) '$) (ac-seval (cadr s)))
そして
(define (ac-seval x)
`(eval ,x))

arc> (= x "hello")
"hello"
arc> (($ string-fill!) x #\a)
#<void>
arc> x
"aaaaa"
0081デフォルトの名無しさん
垢版 |
2008/02/09(土) 03:43:45
[ ... ]っていいね。かなり記述量減らせる。
明示的に変数名も入れられるとベターなんだけど。
[< a b c > ...]みたいな
0083デフォルトの名無しさん
垢版 |
2008/02/09(土) 08:21:22
あれあれ、'とか.とか:とか#とか`とか,とか,@とか&とかいっぱいありますよ?
[]は元々違う意味ですよ?(superbrace)
0085デフォルトの名無しさん
垢版 |
2008/02/09(土) 09:55:53
覚えるのが嫌だとは思わないが、カスタマイズできない構文が増えると嫌だな
しかし fn や if の定義は変更できないほうがいい
0086デフォルトの名無しさん
垢版 |
2008/02/09(土) 10:07:42
shiro氏公開のポールエッセイに数学的だから長生きだ、
みたいな事書いてたけど、[]は数学的根拠はないよね。
if辺りの拡張も俺言語オナニーと発想レベルは同じ。
長生きしないでしょう。
0087デフォルトの名無しさん
垢版 |
2008/02/09(土) 11:58:02
根拠がないなら作ればいい
たとえば、関数適用とラムダ抽象は全然違うんだから全然違うカッコを使うべきだとか
0088デフォルトの名無しさん
垢版 |
2008/02/09(土) 15:15:45
昔は ' も無かったんだし、単なるsyntax sugarでしょ。目くじら立てるようなもんじゃない。
まあ定着するかどうかは微妙だと思うけど。
0089デフォルトの名無しさん
垢版 |
2008/02/09(土) 22:04:44
>>86
長生きさせる気無いんじゃない?
というか最近、彼の一流の技術者的なジョークなんじゃないかという疑いを持つようになった。
あーだこーだ言ってる俺を見てほくそ笑んでるんでは無いかと。
Ctrl-Cの人はそれに気付いてジョークで返したんでは無いかと。
そうやっていつもアイツらは俺を笑ってるんだ。クソ!
0091デフォルトの名無しさん
垢版 |
2008/02/09(土) 22:29:35
100%ジョークってことはないが
Arcのソースにdefine-syntaxが一度たりとも出てこないのはわざとだろうなぁ
0092デフォルトの名無しさん
垢版 |
2008/02/10(日) 10:16:44
>>83
>[]は元々違う意味ですよ?(superbrace)
いつの時代の話してんの?w
その処理系つかったことあるの?w
0093デフォルトの名無しさん
垢版 |
2008/02/10(日) 11:12:31
>>92
なめんな。お前みたいな俄かLisperとは違うわ。
大した手間でもないから、わざわざ自分の
処理系には必ず入れていたぐらい精通してるよ。
後でマイナーな存在だと知ったけどな。
結局、閉じ括弧が減った程度じゃ、
一般人にLispは受け入れられないと悟った。
俺も色々変態構文は作ってきた方だが、
arcの[]みたいな使い方は思いつかなかった。
#fn <args> <expr> => (lambda <args> <expr>)
みたいな物ならいくつもあるが。
0095デフォルトの名無しさん
垢版 |
2008/02/10(日) 12:31:02
>> 93
わりと論旨がとっちらかってて、なにが言いたいのか分からないんだけど、
でも、なんだか凄い人なのは理解できたかも!!!!!
Arcに超カッコが取り入れられる日も近い!
一般人への啓蒙のためにも[]は超カッコで、#L()を採用するべきだわ。
それか、gooみたいに(op _)とかね!まあ、cutでも良いか!

ちなみに#fn <args> <expr>って俄Lisperの漏れには
一見全然便利そうに見えないんですけど、どういうところで、
便利なんですか?!!! 
どこまでが後悔関数の引数なのか分かんなくなって混乱しちゃいそうです!!
0097デフォルトの名無しさん
垢版 |
2008/02/10(日) 14:07:14
パンチカードを使ってた頃は便利だったなあ>超カッコ
まともなエディタがあれば要らないね。w
あと [ ] を vector と解釈する処理系も無かったっけ。Interlispだっけか。
0100デフォルトの名無しさん
垢版 |
2008/02/10(日) 16:01:42
>>95
「わりとなんだか凄い人」なのは判ってくれたようだが、
分からないのは理解しようと努力してないからだ。
>ちなみに#fn <args> <expr>って俄Lisperの漏れには
さて、この変態構文の例を>>7のコードで示せばこうなる。
(trues #fn (_) (if (odd _) (+ _ 10)) '(1 2 3 4 5))
何が便利かはこれで判るだろ。
少なくともarcの[]の様なナンセンスな仕組みよりも、
何を意図するものか判り易い。
付け足すなら、短く書きたいという願望は判るが、
arcの[]は引数が'_'限定では述語ぐらいにしか使えないし、
'_'という名前が名前だけに、読み手に意図も伝えられない。
実際に[]が入っているコードを見たら、頭を1回転させないと
判らない難解さを感じた。
いくら短く書けてもぱっと見で意味不明なのは問題だろうよ。
lambdaをfnに変えたぐらいのセンスで、もうひと捻り欲しい。
0103デフォルトの名無しさん
垢版 |
2008/02/10(日) 16:30:22
こういう目新しい構文って、それなりに使ってみないとまともに評価できないよな
単に慣れないから不自然に見えるだけなのか、根本的に使いにくい構文なのかが一見では区別できない
0104デフォルトの名無しさん
垢版 |
2008/02/10(日) 16:36:49
>>100
自分の中に入りすぎていて論旨がわかりにくい。
もうちょっと行数を減らしてくれないと読むのが苦痛だ。
0106デフォルトの名無しさん
垢版 |
2008/02/10(日) 17:59:59
面倒だから全レスしてやるよ。
>>101 このレベルじゃ常人に理解されなくても困らないんだぜ。
>>102 ネストなんて意図を汲み取れば考慮の外だろ。
>>103 俺なら経験とカンである程度判断できる。
>>104 苦痛でも無理して読むといいよ。
>>105 いい目をしているな、それに度胸もいい。
あえて言うなら[]があればその中で'_'が使われている可能性アリ、
という対の関係を脊髄反射的に印象付けられる、変数ではなく
記号的な識別を行えるという目論見はあるだろうな。
0115デフォルトの名無しさん
垢版 |
2008/02/11(月) 07:12:51
Arc の [] は、極端に単純な関数を極端に簡単に書くためだけの仕組みでしょ。
ちょっとでも複雑なコードが書きたいなら、普通に fn で書けばいいんだよ。
変数名とかがなくても一目でわかるくらいのコードに限定して、便利に使えればそれでいい。
別に fn を置き換えるようなものじゃないんだから。
0117デフォルトの名無しさん
垢版 |
2008/02/11(月) 09:28:42
de Bruijn indexというのがあってだな
現在のスコープで最も内側で束縛された変数を 1 とする
0119デフォルトの名無しさん
垢版 |
2008/02/11(月) 09:51:32
>> 115
そうだよね、letとwithの関係みたいなね。
引数が一つだけのlambdaが多用されるから便利に、ってことなんじゃないのかしら。
0120デフォルトの名無しさん
垢版 |
2008/02/11(月) 09:57:17
>>118
BoostはおいといてArcの[]を一般化しようという妄想だから

>>115
その「限定された範囲で便利に使える」機能は
普遍的な機能 (マクロなど) から導き出せるはずだっていう思想があるから
fnを置き換えるほど普遍的な機能だ
ということにすれば受け入れられやすいのではないか
0127デフォルトの名無しさん
垢版 |
2008/02/14(木) 00:25:28
(= x (table))
(= x!key 'val)

将来的には「applyメソッドをoverride」したり中置記法のマクロを書けるようになるのか?
0130デフォルトの名無しさん
垢版 |
2008/02/14(木) 14:31:03
なんかarc1の説明にcutが沢山でてくると思ったらsubseqから名前変わったのね。
他にも変更になったのあるのかしらん。
0133デフォルトの名無しさん
垢版 |
2008/03/01(土) 00:38:24
てめぇらの意見が聞きたい

型やマクロに制約のある言語を使ってると
その制約と相性の悪い新機能を使うために新しい言語に移行するパターンが多くないか?

制約のある言語はいつか破綻するものと割り切って使うしかないのか?
0135デフォルトの名無しさん
垢版 |
2008/03/01(土) 03:54:09
そうかもしれん

ポールグレアムは「高級言語はプログラムを短くするためにある」と言った
でも普通のやつらは新しい機能を使うために新しい言語を使うんじゃないか
そこには、新しい機能を古い言語で実現できないという前提がある

Arcが期待はずれだった人も、
プログラムを短くすることではなく、新しい機能を期待していたのだと思う

だがポールグレアム的には、古い言語で実現できない新しい機能など存在しない
できないのは言語に色んな制約をつけた奴が悪い

で、静的型やhygienic macroのある言語って何なの?って話
0136デフォルトの名無しさん
垢版 |
2008/03/01(土) 04:00:17
Cを始めてみた時、ここまで記号羅列で表記する意味はあるのか、
いやないんじゃないかと思った。今では慣れた。endすらうざい。
0137デフォルトの名無しさん
垢版 |
2008/03/01(土) 04:02:05
Cにendなんてないわけだけど。
Rubyのことを言ってるならあれはEmacsから一発でインデントと共に
入れるもの。
0138デフォルトの名無しさん
垢版 |
2008/03/01(土) 08:04:09
括弧が記号じゃないとエディタで対応とらせるのに不便よね。
インデントだけじゃなくて移動とか。
PostScriptみたいに[,]が実はオペレータってのも勘弁だが。
0142デフォルトの名無しさん
垢版 |
2008/03/02(日) 14:13:23
レンタルサーバ上で Arc によってウェブアプリを書いている人いますか?


Arcで書かれたポールグレアムの News.YC がオープンソース化
http://d.hatena.ne.jp/higepon/20080225/1203913944
0144デフォルトの名無しさん
垢版 |
2008/03/02(日) 14:17:36
Arcからの挑戦
http://practical-scheme.net/wiliki/wiliki.cgi?Arc%E3%81%8B%E3%82%89%E3%81%AE%E6%8C%91%E6%88%A6

単純な問題を、挑戦として示すことにしよう。
そして、ポピュラーな言語での解答を集めて、その長さを比べてみるつもりだ。

次のようなプログラムを書け。
URL said (例えば http://localhost:port/said )は、入力フィールドひとつと、送信ボタンひとつのページを生成する。
送信ボタンが押されたら、2番めのページとして、"click here." と書かれたリンクひとつのページを生成する。
それがクリックされたら、3番めのページとして、"you said: ..." と書かれたページにいく。
ここで ... は、さっきの入力フィールドにユーザがタイプしたものだ。
ただし、3番めのページは、ユーザが実際にタイプしたものだけを表示すること。
つまり、入力フィールドの値を URL で渡してはいけない。そうしないと、最後のページの動作をURLで変えるようなことができてしまう。

単純だし、このようなテストに求められるように、これは例として不自然ではない。
Webアプリは、このようなことをいつもやっているのだ。あるいは、何か難解なライブラリ(Arcにあって他の言語にはないような)に頼るわけでもない。Webアプリを書くのに使われる言語なら当然もっているものだけでいい。

これが Arc の答えだ:

(defop said req
 (aform [w/link (pr "you said: " (arg _ "foo"))
      (pr "click here")]
 (input "foo")
 (submit)))

もし Arc になじみがなければ、私のいうことを信じてもらうほかないが、これはコード上のトリックで圧縮したわけではない。
これが Arc で書くには標準的な書きかたなのだ。
0148デフォルトの名無しさん
垢版 |
2008/03/06(木) 17:09:30
野良犬日記 2.1 ? Going to the Mutts
- Paul Graham のエッセイは翻訳が許可されている
http://tamo.tdiary.net/20080304.html#p01

> たとえば cond マクロ。こいつには Lisp 1 からこのかた余計な括弧がびっ
> しり付いてきて、それを誰も何ともしてこなかった。 if と cond を押しつ
> ぶしてひとつのオペレータにする Arc の技も、誰かがとっくに見つけてい
> たっておかしくなかったのだが、 間違いなくそんな周知の事実はない。こ
> んなことができると気づいたときは嬉しかったなあ。

これって何の話?誰か教えてプリーズ。
0153デフォルトの名無しさん
垢版 |
2008/03/06(木) 23:16:16
cond の括弧が「余計」だとは思わない。
要素の数を数えるより、括弧の対応だけ追うほうが楽だし。
ただ、 Arc の if のが書きやすいかもしれないとは思う。
0155デフォルトの名無しさん
垢版 |
2008/03/06(木) 23:31:54
ifもそうだけど、思ったよりwithも使い勝手悪い気がするんだよね。
letは良いんだけど。

>>154
インデントで見やすくする、っていう発想/行為自体が、括弧を減らすことで、
見やすさが向上してないってことじゃなかろうかww
まあ、もっと高尚な目的のために括弧を減らしたんだろうけどね。
0162デフォルトの名無しさん
垢版 |
2008/03/08(土) 04:13:23
ところでprognってなんて読むの?
俺は心の中では「ぷろぐなぁー」。人前では発音したことない。l
0164デフォルトの名無しさん
垢版 |
2008/03/08(土) 09:02:03
俺は「プロオン」だな。「オ」のところは喉をすぼめて。
人前で読むなら「プログエヌ」だろうか。
0167デフォルトの名無しさん
垢版 |
2008/03/08(土) 12:22:24
実際ifのtrue節やfalse節でよくdoしてるよな。
letな局面も多くて、いつもしているわけじゃないけど。
あと、elseifが連なる時、どれが条件だか分かりにくいわ。
今のインデントルールだと全部同じ高さだから。

まあこんなのはどうでもいいところだけど。
0170デフォルトの名無しさん
垢版 |
2008/03/11(火) 17:25:49
で、このアークってのは今までのLispの方言に比べて何か画期的な
機能とかあるの?
0172デフォルトの名無しさん
垢版 |
2008/03/14(金) 14:41:10
文字列処理が変態的と聞いたが、使ってみた人、どうよ
0175デフォルトの名無しさん
垢版 |
2008/03/18(火) 22:12:10
萩谷(昌己)さんが学生のとき作ったHyperlispなんて変態的で画期的だったな。
もはやLispではないかもしれんが。
0176デフォルトの名無しさん
垢版 |
2008/03/19(水) 00:34:08
どう画期的なのか、概略だけでも書いてくれると、
もうちょっとは盛り上がります罠。
0177デフォルトの名無しさん
垢版 |
2008/03/19(水) 00:43:37
ググれば論文出てくるよ。
ファースト・オーサーは佐藤さん。

二分木を基底にした数学的意味を持つLisp。
0196デフォルトの名無しさん
垢版 |
2008/04/06(日) 16:46:18
一ヶ月に一回位のペースで新バージョンがリリースされるのかと思ったら、ペース落ちてきたね。
0197デフォルトの名無しさん
垢版 |
2008/04/08(火) 00:01:02
正直、現状の肉でも魚でもないものじゃ更新ペースが速くても興味がわかない。
もう少しまとまった形になってから出してくれた方がいい。
0201デフォルトの名無しさん
垢版 |
2008/04/10(木) 23:24:33
相互再帰たらいまわし

(= Y* ([_ _]
[fn fs (fn (f) (fn xs (apply (apply f (map (apply (_ _) fs) fs)) xs)))]))

(= tarai
((fn (f g) ((Y* f g) f))
(fn (f g)
(fn (x y z)
(if (<= x y) y
(g (f (- x 1) y z)
(f (- y 1) z x)
(- z 1) x y))))
(fn (f g)
(fn (x y zx zy zz)
(if (<= x y) y
(let z (f zx zy zz)
(f x y z)))))))
0202デフォルトの名無しさん
垢版 |
2008/04/22(火) 20:44:47
直接貼ると見づらいが、リンクするのも微妙だし、なんとかならんのか
0204デフォルトの名無しさん
垢版 |
2008/04/22(火) 23:05:29
ふつうの定義。超遅い。竹内関数とも呼ばれる。
(= tarai
  (fn (x y z)
    (if (<= x y)
      y
      (tarai
        (tarai (- x 1) y z)
        (tarai (- y 1) z x)
        (tarai (- z 1) x y)))))

#これコピペすると&#160;が鬱陶しい

Y*は2変数ならこうなる
((Y* f g) h) => (h ((Y* f g) f) ((Y* f g) g))
0205デフォルトの名無しさん
垢版 |
2008/04/23(水) 20:04:10
>>201を(´д`)Editで観易くするテスト

(= Y* ([_ _]
   [fn fs (fn (f) (fn xs (apply (apply f (map (apply (_ _) fs) fs)) xs)))]))

(= tarai
  ((fn (f g) ((Y* f g) f))
   (fn (f g)
   (fn (x y z)
    (if (<= x y) y
     (g (f (- x 1) y z)
      (f (- y 1) z x)
       (- z 1) x y))))
   (fn (f g)
   (fn (x y zx zy zz)
    (if (<= x y) y
     (let z (f zx zy zz)
      (f x y z)))))))
0206デフォルトの名無しさん
垢版 |
2008/05/03(土) 16:38:21
スターリスプみたいにさ、デフォルトで並列対応とかしてれば人気出るのに。
0212デフォルトの名無しさん
垢版 |
2008/06/08(日) 01:13:48
またLispの方言できたの?
0219デフォルトの名無しさん
垢版 |
2008/11/26(水) 03:21:47
dylanとどっちが強いの?
0220デフォルトの名無しさん
垢版 |
2009/01/14(水) 12:06:47
既存のschemeのプログラムをそのまま走らせることはできるの?
slibとかそのままもってこれる?
0221デフォルトの名無しさん
垢版 |
2009/05/18(月) 20:31:12
誰かが直接Arcのインタプリタを実装してくれないかな....
0223デフォルトの名無しさん
垢版 |
2009/05/18(月) 21:43:49
>>222
頼むよ、このままじゃPlan9みたいに
第三のプログラムが作成されない現状のままになるから。
Common Lispはでかい割に必要な機能がないという異常事態だし。
0226デフォルトの名無しさん
垢版 |
2009/05/19(火) 18:32:09
>>225
そんなにさくっとLispインタプリタがかけるようになるのは
どういう練習をしたらいいんだ?
どういう練習をしたら良いのかさっぱりわからん、
Cのプロフェッショナルになる必要が有るのだろうか?
0228デフォルトの名無しさん
垢版 |
2009/05/19(火) 19:20:16
>>227
さくっとかけないよ.
だよ、Listを読み込む方法がわからないよ。
(から)までなの?
`(バッククオート)の処理の方法が思いつかないよ
0230デフォルトの名無しさん
垢版 |
2009/05/19(火) 19:34:08
>>228
調べろよ。
OpensoruceのLispの処理系なんていくらでもあるだろ。

それに、Lispの処理系を作ったことがないとか、プログラマーとして如何なものかと思う。
0231デフォルトの名無しさん
垢版 |
2009/05/19(火) 22:03:50
> それに、Lispの処理系を作ったことがないとか、プログラマーとして如何なものかと思う。

さすがにそれはどうか

いや作ったことあるけどさ
0238デフォルトの名無しさん
垢版 |
2010/02/04(木) 23:28:10
すっかり過疎ったな
0239デフォルトの名無しさん
垢版 |
2010/04/08(木) 21:08:21
誰か使ってる奴いる?
0241デフォルトの名無しさん
垢版 |
2010/07/06(火) 07:02:29
過疎わろた・・・
0244デフォルトの名無しさん
垢版 |
2010/07/17(土) 19:06:41
上には上が
0250天使 ◆uL5esZLBSE
垢版 |
2011/07/02(土) 02:36:40.87
Rubyバカにしてる子ってさ
変数に$ついてる言語触ってるって事だよね

いちいちSHIFT+4キーおして $ 打ちまくってる感触はどう?
0253天使 ◆uL5esZLBSE
垢版 |
2011/07/04(月) 20:38:19.05
-
「「「「「「 さっさと死ねばいいんじゃね? 」」」」」」(キリッッ!キリッッッッキリッッッ!!キリッッッ
---------(きリッッきリッッ
0254デフォルトの名無しさん
垢版 |
2011/07/09(土) 01:31:24.09
http://tryarc.org/ が復活してた
これは良いっすな
0258デフォルトの名無しさん
垢版 |
2012/09/03(月) 14:36:30.94
Arcって使ってるユーザーいるの?
あと、他の言語とは何が違うの?
CLの正常進化版?
0260デフォルトの名無しさん
垢版 |
2013/10/21(月) 00:54:16.52
Arcユーザーています?
0261デフォルトの名無しさん
垢版 |
2014/11/09(日) 14:25:13.70ID:iOEsToOb
Arcって名前がカッコイイな。
厨二心をくすぐられる。
0263デフォルトの名無しさん
垢版 |
2018/05/23(水) 22:59:54.78ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

4X8A2
0264デフォルトの名無しさん
垢版 |
2018/07/04(水) 23:08:33.86ID:gFgZc5FG
V6B
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況