09/07/25 11:48:28
>>1
Lispも入れろっちゅうことですよ アホー!
3:デフォルトの名無しさん
09/07/25 12:49:38
Lispは"Perl、PHP、Python、Ruby、JavaScript・・・"のなかの "・"です。
信者とアンチがうざいから名前を出さないわけではありませんのでご了解をお願いします。
4:デフォルトの名無しさん
09/07/25 12:59:52
これはハスケルを締め出そうという陰謀のスレね…こわい
5:デフォルトの名無しさん
09/07/25 13:30:52
>>4
>>3のLispのところをハスケルに置き換えてください。他の言語も同様です。
マイナーな言語を使う人は劣等感から妄想を抱きがちですが決してそういう意図は
ありませんのでご了解をお願いします。
では、死ぬまで語りやがるよう お願いします。
なお私は1ではありません。でしゃばってすみません。
6:デフォルトの名無しさん
09/07/25 14:50:02
D言語はLLですか?
7:デフォルトの名無しさん
09/07/25 15:03:28
いえ、ダメ言語です
8:デフォルトの名無しさん
09/07/25 15:07:58
LLは lua & Lisp の事です D言語は入る余地無しです
9:デフォルトの名無しさん
09/07/25 16:19:24
え、Lispに一番近いとまで言われたPythonってなんだったの
10:デフォルトの名無しさん
09/07/25 17:09:12
Lispに近いって、どういう事?
おままごとか、せいぜいCADのマクロぐらいにしか使えないって事?
11:デフォルトの名無しさん
09/07/25 17:28:25
関数に関数を渡したり、関数の中で関数を定義したり、関数が関数を返したりする事。
大雑把に言えばLispに近いほどJavaから遠くなる傾向がある。
12:デフォルトの名無しさん
09/07/25 17:35:16
他にLispっぽいとか言われるのは、JavaScriptとかRubyとか
基本的には褒め言葉
強力なリストであったり、高階関数であったり、GCであったり
パワーのある言語だねって
13:デフォルトの名無しさん
09/07/25 17:37:47
関数系は遅延評価が(どういう風に使えばいいのかが)よくわからない。
14:デフォルトの名無しさん
09/07/25 17:59:07
Javaだってインナークラス使えば同じことができるぞ。
15:デフォルトの名無しさん
09/07/25 18:01:05
高階関数は使い出すとクセになるな
Lisp使うとjavaは要らんとつくづく思うよ
16:デフォルトの名無しさん
09/07/25 19:13:09
pythonやrubyで√2の小数点以下100桁を求めるとしたらお前らどうよ?
17:デフォルトの名無しさん
09/07/25 19:14:14
いい感じだよ。
18:デフォルトの名無しさん
09/07/25 19:32:42
Python
>>> from decimal import Decimal, getcontext
>>> getcontext().prec = 101
>>> Decimal(2).sqrt()
Decimal('1.414213562373095048801688724209698078569671875376948073176679737990732
4784621070388503875343276415727')
19:デフォルトの名無しさん
09/07/25 19:57:38
まだやんの?
最強は機械言語でいいじゃん
20:デフォルトの名無しさん
09/07/25 20:01:42
import使われるとなんかズルされた気がするよ。
21:デフォルトの名無しさん
09/07/25 20:41:18
√2 = r と置いてみる
↓
(r * 10^100)^2 = r^2 * 10^200 ≒ 2 * 10^200 となる整数 (r * 10^100) を探してみる
↓
(r * 10^100) / 10^100 がたぶん求める答え
ひょっとすると 10^101 かもしれないがそれは後で検証
22:デフォルトの名無しさん
09/07/25 21:22:55
>>> def r2(m):
... p = 2*10**m
... for i in xrange(p):
... if (p-3)*10**m <= i*i and i*i <= (p+3)*10**m:
... print i
...
>>> r2(4)
14142
14143
>>> r2(5)
141421
141422
>>> r2(6)
1414213
1414214
>>> r2(7)
14142135
14142136
遅いわwww
23:デフォルトの名無しさん
09/07/25 21:32:40
>>> r2(100)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in r2
OverflowError: long int too large to convert to int
24:デフォルトの名無しさん
09/07/25 21:36:15
このスレもレベル下がったな
糞スレ決定だろ
25:デフォルトの名無しさん
09/07/25 22:44:23
みんな!民主党が大変な事になってるよ。
URLリンク(www.nicovideo.jp)
26:デフォルトの名無しさん
09/07/25 23:14:45
平方根を数値計算するアルゴリズムは意外と簡単だ。
筆算でも算盤でもできる。
URLリンク(ja.wikipedia.org)
27:デフォルトの名無しさん
09/07/25 23:16:08
URLリンク(www.jma-net.go.jp)
28:デフォルトの名無しさん
09/07/25 23:38:56
√(10+3√(97+56√3))
29:デフォルトの名無しさん
09/07/26 01:53:07
遅延評価って
if( hoge() or hogehoge() )
って時に、hoge()がtrueならhogehogeが実行されないってことだしょ?
短絡的に考えれば、hogehoge()を実行しなくていい時ってことでいいんじゃない。
どっちも確実に実行したいなら、ifに掛ける前に代入しておけばいいだけだし
30:デフォルトの名無しさん
09/07/26 01:54:34
は?
31:デフォルトの名無しさん
09/07/26 01:57:10
ははは
32:デフォルトの名無しさん
09/07/26 02:02:22
あっ、ごめん
俺おもいっきし間違ってる?
33:デフォルトの名無しさん
09/07/26 02:16:56
それは短絡評価。
34:デフォルトの名無しさん
09/07/26 06:37:03
foo( bar() + baz() )
って時に、普通の言語ならbar()+baz()をそれぞれ呼んで計算してから
その結果をfoo()に渡すのに対して、遅延評価のある言語だと
いきなりfoo()に「bar()+baz()」っていう「式」を渡す
んで、bar()+baz()の値が実際に必要になるまでは式のままで評価されない
あと、無限リストなんかも扱えたりする
(1~∞)の中から、条件に合致する値を抽出し、さらのその2番目から10番目を抽出する
なんて処理がマジで言葉通りに書ける
35:デフォルトの名無しさん
09/07/26 06:37:40
>>22-23
せめてニュートン法くらい使えよw
>>> def r2(m):
... p0 = 2*10**m
... p = p0
... while(not ((p0-3)*10**m <= p*p and p*p <= (p0+3)*10**m)):
... p = (p*p + p0*10**m) / (2*p)
... print p
...
>>> r2(4)
14142
>>> r2(10)
14142135623
>>> r2(100)
14142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727
36:デフォルトの名無しさん
09/07/26 06:54:49
前置記法って何でLispしか無いんかね?
37:デフォルトの名無しさん
09/07/26 07:01:42
>>34
>あと、無限リストなんかも扱えたりする
>(1~∞)の中から、条件に合致する値を抽出し、さらのその2番目から10番目を抽出する
>なんて処理がマジで言葉通りに書ける
整数nについて,各桁の数の階乗の和S(n)を考える.たとえば,n = 145 とすると,
S(145) = 1! + 4! + 5! = 1 + 24 + 120 = 145
となる.このように,S(n) = n となるn(n≧0)のうち3番目と4番目を抽出せよ.
これを遅延評価でおながいします.
38:デフォルトの名無しさん
09/07/26 07:19:34
ああ、Lispスレの929か。
39:デフォルトの名無しさん
09/07/26 08:08:24
>>37
それ2つしか答えないよ
40:デフォルトの名無しさん
09/07/26 08:13:40
だいたい、「遅延評価でおながい」って、何をおながいするんだ?
41:デフォルトの名無しさん
09/07/26 08:40:47
平方根はこんな感じ ↓
(labels ((nxt (x v) (/ (+ x (/ v x)) 2)))
(defun sqp (n e)
(do* ((x1 n x2) (x2 (nxt x1 n) (nxt x1 n)) (err (expt 10 (- 0 e))))
((< (abs (- x1 x2)) err)
(truncate (* (expt 10 e) x2))))))
> (sqp 2 100)
14142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727
42:デフォルトの名無しさん
09/07/26 08:46:33
>>40
ハスケルでお願いっていう意味じゃないの?
43:デフォルトの名無しさん
09/07/26 08:51:30
>>39
では50番目から100番目まで。
というのはおいといて”マジで言葉通りに書ける”とあるから1-2番目を計算せずに
いきなり3番目を取り出せるのだろうな。処理系内部では一所懸命計算やるだろうけど。
>>35の説明で遅延評価をはじめて知ったんだけど処理系にバグを仕込むために考え出さ
れた仕様ではないだろうか。
44:デフォルトの名無しさん
09/07/26 09:07:44
>>39
4っつだ
ぼけ
45:デフォルトの名無しさん
09/07/26 09:08:40
「4っつ」って珍しい書き方だな。
46:デフォルトの名無しさん
09/07/26 09:11:32
>>43
え、もしかして、なんか言質とってツッコミ入れて恥かかせたがってる?
「言葉通りに」というところを取り上げて何か言いたかったら、元の「言葉」を正しく読み取らなきゃダメよ。
47:デフォルトの名無しさん
09/07/26 09:26:02
よく2chの情報はいい加減とか、正しくない情報が多いとか言われるけど、
僕にとっては大事な情報源です。
たまにはボロクソ言われることもあるけど、みんな親切に教えてくれる。
いつもありがたいと思ってる。
48:デフォルトの名無しさん
09/07/26 09:29:47
>>46
そんな気はまったくない。>>35には感謝してるよ。よそで”遅延評価というのはだな・・・”
とか言ってみたいほうだから。元の「言葉」を正しく読み取ったらどえなるのだ。
49:デフォルトの名無しさん
09/07/26 09:38:28
うわ。アンカー間違えた>>34だ。最後”どえなるのだ” じゃねえ ”どうなるのだ” だった。
50:デフォルトの名無しさん
09/07/26 10:09:38
tail $ take 10 $ filter func [1..]
とかそんな感じのことじゃねーの?
51:デフォルトの名無しさん
09/07/26 10:31:33
>>48
> 元の「言葉」を正しく読み取ったらどえなるのだ。
「(1~∞)の中から、条件に合致する値を抽出し、さらのその2番目から10番目を抽出する」
これが元の言葉だよね。
「”マジで言葉通りに書ける”とあるから1-2番目を計算せずに」って、それは元の言葉にある
「条件に合致する値を抽出」する途中の段階を、そっと見て見ぬフリしてない?
52:デフォルトの名無しさん
09/07/26 10:56:53
遅延評価って、例えば現在の時間を内部でパラメータとして使うような関数だと、
いつ評価されるん?
53:デフォルトの名無しさん
09/07/26 11:00:43
現在時間を使うなら「時間を得る」部分だけはその時点で評価されて
それ以外の処理は後回しじゃね?
54:デフォルトの名無しさん
09/07/26 11:06:17
>>51
見て見ぬフリはしてない。「条件に合致する値を抽出」するところは処理系が
3番目が必要になったときに1-3番目を計算して3番目を返すと解釈している。
だからプログラマはいきなり3番目を取り出せると想像したんだけどこれで
合ってるんじゃないか。
55:デフォルトの名無しさん
09/07/26 11:09:07
遅延評価と、クロージャとかカリー化を統一できそうだな。
56:デフォルトの名無しさん
09/07/26 11:38:45
>>52
Haskell では IO モナドでそのへんをうまくやってる
57:デフォルトの名無しさん
09/07/26 17:48:30
とんだすれ違いスレだな
58:デフォルトの名無しさん
09/07/26 18:52:22
すれちがい通信か
59:デフォルトの名無しさん
09/07/26 19:52:52
>>16を>>26のアルゴリズムで書いてみたわ。
泥臭い方法だけど、桁が増えても計算量が線形増加だからいいかも。
30行くらいだけどソースいる?
60:デフォルトの名無しさん
09/07/26 21:05:47
plz
61:デフォルトの名無しさん
09/07/26 21:06:28
2/2 URLリンク(www.youtube.com)
1/2 URLリンク(www.youtube.com)
62:59
09/07/26 21:16:15
def kaihei(n, k):
stack = []
keta = 1
while n >= 100:
stack.append(n % 100)
n = int(n / 100)
keta = keta + 1
else:
stack.append(n)
dlist = list(range(10))
dlist.reverse()
baikon = 0
rem = 0
result = ""
while (keta > 0 or (keta <= 0 and -keta <= k)):
if keta == 0:
result += "."
keta = keta - 1
if(len(stack) > 0):
rem = rem + stack.pop()
for i in dlist:
if(rem >= i * (baikon + i)):
result += str(i)
rem = (rem - i * (baikon + i)) * 100
baikon = baikon * 10 + i * 20
keta = keta - 1
break
print(result)
63:59
09/07/26 21:24:32
>>> kaihei(2, 100)
1.4142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727
ちなみに、整数しか対応してない。
一部の名前が、開平とか桁とか倍根とかそのままローマ字になってるけど、そのあたりは勘弁してくれ。
かわりに桁合わせをちゃんとしたから。
64:デフォルトの名無しさん
09/07/26 23:32:27
クスクス
65:デフォルトの名無しさん
09/07/26 23:35:23
>>43
横レスだが
drop 49 $ take 100 $ filter (\x -> (foldr ((+) . product . enumFromTo 1 . read . (flip (:) [])) 0 . show) x == x) [1..]
直感的に書くとこんな感じかな?
49と100の部分を変えればどうとでも書けるよ。
66:デフォルトの名無しさん
09/07/27 07:40:37
>>65
サンクス!
haskell知らないから間違っているかもしれないが49までの計算結果を捨てる
のを明示しなきゃいけないということですね。
>>34を読んだら 2..10 という感じで書けると思っていた。
67:デフォルトの名無しさん
09/07/27 08:51:59
>>62-63
GJ!!!
68:デフォルトの名無しさん
09/07/27 11:28:26
memo
URLリンク(www.youtube.com)
69:デフォルトの名無しさん
09/07/27 12:08:35
>>66
そうですね。
でもたとえば「それが50番目である」ことを示すには前の49個の計算が
必要なわけで、それを省略することは遅延評価といえどできない。
遅延評価なのは100以降を計算しないこと。
自分で2,10を引数にとる関数を作ればもちろん2..10みたいに書けるよ。
70:デフォルトの名無しさん
09/07/27 15:02:19
PHPで無料レンタル鯖のいいとこ&有名なとこあります?
71:デフォルトの名無しさん
09/07/27 15:12:24
俺んち
72:デフォルトの名無しさん
09/07/27 15:25:28
養殖ならノルウェー辺りが有名だな
73:デフォルトの名無しさん
09/07/27 23:44:17
URLリンク(www.atmarkit.co.jp)
なにポーズつけてるんだよ(w
74:デフォルトの名無しさん
09/07/27 23:50:13
It has already been out.
75:デフォルトの名無しさん
09/07/28 01:14:48
「ポーズとってください」って言われたんだろうなw
『まつもとゆきひろ コードの世界』でも「私だって恥ずかしい」とか書いてた
76:デフォルトの名無しさん
09/07/28 03:13:45
その記事おもしろかったねー。いろんな話が凝縮されてて。
77:デフォルトの名無しさん
09/07/28 05:55:15
プログラマーって見栄え悪いのばっかだな。
78:デフォルトの名無しさん
09/07/28 06:00:38
見栄えで稼ぐ商売以外は似たり寄ったりだよ。
79:デフォルトの名無しさん
09/07/28 12:14:20
>77
運動不足が職業病だからな。
80:デフォルトの名無しさん
09/07/28 12:46:29
まっつんはちょっと痩せればそれなりにダンディになるとは思うが。
81:デフォルトの名無しさん
09/07/28 13:31:14
全員、顎髭を伸ばせば、かっこがつくよ。
82:デフォルトの名無しさん
09/07/28 13:50:10
They should be skin head.
83:デフォルトの名無しさん
09/07/29 19:12:58
Python 3.1からifとかforとかけっこう変わるんだね。
修正がめんどい orz
84:デフォルトの名無しさん
09/07/29 20:59:40
URLリンク(coreblog.org)
このエープリルフールを真に受けちゃった人ですか
85:83
09/07/30 01:26:38
>>84
変わらないの?良かったぁ (;´Д`)
86:デフォルトの名無しさん
09/07/30 01:31:23
しかし、3がリリースされた直後に3.1を四月馬鹿ネタにするってのもなんかセンスが微妙だな
Python 4とかなら微笑ましいんだが。
Pythonってそんなにバージョンアップしないもんなの?
Perl6がリリースされた後でPerl 6.2の話題とか、多分普通に信じるぞ。
87:デフォルトの名無しさん
09/07/30 03:32:19
Pythonのメジャーバージョンは1、2、3、3.1、3.11、3.12、3.13、3.14、3.141と増えていくからな
88:デフォルトの名無しさん
09/07/30 03:34:48
クヌース先生の美学だよなあ……
89:デフォルトの名無しさん
09/07/30 13:13:54
>>87
最近の小学生は3と聞いたけど
90:デフォルトの名無しさん
09/07/30 13:39:23
>>89
それ聞きまちがい
91:デフォルトの名無しさん
09/07/30 15:00:19
URLリンク(ja.wikipedia.org)円周率は3
92:デフォルトの名無しさん
09/07/31 00:01:38
エイプリルフールネタを一見それとはわからない状態で
いつまでもWeb上に残しておくなんて、はっきり言って悪だろ。
それでwebなんちゃらなんて会社の代取とか笑えねーって。
93:デフォルトの名無しさん
09/07/31 00:39:36
日付みればわかるだろ。アホか
94:デフォルトの名無しさん
09/07/31 01:03:21
実際、真に受けてるやつがいるだろ。アホか
95:デフォルトの名無しさん
09/07/31 01:08:02
ひとりのアホの面倒をみるためにみんなが犠牲にならなければならないのかよ
96:デフォルトの名無しさん
09/07/31 08:58:40
>>95
犠牲て。
ネットにデマを流すときはそれなりの
配慮があってしかるべき。jk
97:デフォルトの名無しさん
09/07/31 11:54:13
4/1のエントリって時点で、それなりの配慮はしてるわな。
98:デフォルトの名無しさん
09/07/31 18:47:55
4/1に書かれた記事は全て疑わないといけないのかよ
99:デフォルトの名無しさん
09/07/31 19:00:29
とうぜんだろ
100:デフォルトの名無しさん
09/07/31 21:20:58
どっかのバカがやってるならともかく、
プロフィールにそれなりの肩書き書いておいて
あんな感じじゃ、いろいろ神経疑われるわなw
101:デフォルトの名無しさん
09/07/31 22:03:28
Pythonian: モンティパイソン精神なのでそんなの余裕で笑ってスルー
Rubist: エープリルフールネタなんだからあーたらこーたら
Perler: ネタを見逃して話題に乗れない
102:デフォルトの名無しさん
09/07/31 22:13:16
>>101
あ、それいいえてミョー
103:デフォルトの名無しさん
09/07/31 23:20:35
>>101
いや、きっとdankogaiなら、
dankogaiならネタを見逃すはずがない。
104:デフォルトの名無しさん
09/07/31 23:34:11
>>103
断固GUYって誰?
105:デフォルトの名無しさん
09/07/31 23:34:33
LLTVまで残り1ヶ月を切りました。
盛り上がって参りましょう!
106:デフォルトの名無しさん
09/08/01 06:20:40
すみません。
ところで僕は中学生のころ、いじめられっこでした。
一番ひどくいじめられた放課後、先生が見るに見かねてとめてくれて
家の帰りもずっといっしょでした。そのとき、川原で先生と一休みしたんですが
先生がこんなことをいっていました。
「人間ってのはひどいもんだ。
こんな鼻くそより汚い。」
私はいまだに鼻くそより汚いという比喩がうまく理解できませんが、
そんな比喩にまで使われた鼻くそをいまだに食べています。私はRubyプログラマーです。
107:デフォルトの名無しさん
09/08/01 15:45:52
そのコピペなんかいみあんの?
108:デフォルトの名無しさん
09/08/01 18:49:14
例えばこれを実行すると結果が何になるか、すぐにわかる?
①int i=0;if(i=1){puts("1");}else{puts("2");}
②int j=0;for(;j>0;++j){}
109:デフォルトの名無しさん
09/08/02 02:02:48
分かるよ。
1,1 が表示される。
2,for文は実行されない。
110:デフォルトの名無しさん
09/08/02 07:04:04
俺は後者はとっさに判らないな
単項++演算子の戻り値はアテにすべきじゃないと思ってる
自分じゃそういうコードは書きたくないね
111:デフォルトの名無しさん
09/08/02 07:06:57
単項++の戻り値は使われていないわけだが…
112:デフォルトの名無しさん
09/08/02 07:13:43
ごめんなさい間違えました
113:デフォルトの名無しさん
09/08/02 07:15:59
i=1が(文脈によっても)何を返すかは、言語によってブレがあるな。
114:デフォルトの名無しさん
09/08/02 08:16:52
BASIC系は文脈で比較か代入かが決まることが多いね
本家はLET省略不可だからLET文以外代入だけど
Javaは代入文自体の戻り値はCと変わらんが
if文がbooleanしか受け付けないからエラーだな
115:デフォルトの名無しさん
09/08/02 12:42:53
>>107
底辺Rubyプログラマーってことだろ
116:デフォルトの名無しさん
09/08/03 09:39:57
所謂覆面算で
英字一文字がそれぞれ異なる一桁の数字(0-9)で表されるとき
one
+ nine
+ twenty
+ fifty
= eighty
となる組み合わせを検索してください
各行の先頭の文字は0以外です
117:デフォルトの名無しさん
09/08/03 11:52:03
それって正解は「そんな組み合わせは無い」で合ってる?
118:デフォルトの名無しさん
09/08/03 11:55:11
pythonスレで答え出てなかったっけ?
119:デフォルトの名無しさん
09/08/03 12:26:48
ごめんあった、何故かone+nine+twenty+fifty+eighty=eightyで計算してた俺の馬鹿~
selects([], _).
selects([X|XL],YL) :- select(X,YL,L), selects(XL,L).
check(O,N,E,I,T,W,Y,F,G,H,ONE,NINE,TWENTY,FIFTY,EIGHTY) :-
ONE is O * 100 + N * 10 + E,
NINE is N * 1000 + I * 100 + N * 10 + E,
TWENTY is T * 100000 + W * 10000 + E * 1000 + N * 100 + T * 10 + Y,
FIFTY is F * 10000 + I * 1000 + F * 100 + T * 10 + Y,
EIGHTY is E * 100000 + I * 10000 + G * 1000 + H * 100 + T * 10 + Y,
ONE >= 100, NINE >= 1000, TWENTY >= 100000, FIFTY >= 10000, EIGHTY >= 100000,
EIGHTY =:= ONE + NINE + TWENTY + FIFTY.
solve(ONE,NINE,TWENTY,FIFTY,EIGHTY) :-
selects([O,N,E,I,T,W,Y,F,G,H],[0,1,2,3,4,5,6,7,8,9]),
check(O,N,E,I,T,W,Y,F,G,H,ONE,NINE,TWENTY,FIFTY,EIGHTY).
?- solve(ONE,NINE,TWENTY,FIFTY,EIGHTY).
ONE = 984,
NINE = 8584,
TWENTY = 364832,
FIFTY = 75732,
EIGHTY = 450132 ;
false.
120:デフォルトの名無しさん
09/08/03 13:24:34
prologだっけ?
121:デフォルトの名無しさん
09/08/03 14:54:47
Prologだよ
手続き書くのは面倒いが
覆面算とかはむしろこの言語の十八番だと思う
122:デフォルトの名無しさん
09/08/03 15:29:28
>>121
おすすめのProlog実装を教えてください。
あとおすすめの教科書もあれば。
123:デフォルトの名無しさん
09/08/03 15:48:44
とりあえずはSWI-Prologで良いんじゃないかと
教科書は…Prologスレのテンプレに載ってるやつ片っ端読むのが良いんじゃない?
日本語で書かれてるやつだけ読んでもそれなりには解るかと
ちなみに今回のコードは「Prolog 覆面算」でググって出てきた
SEND+MORE=MONEYのコードを元にして改変したものだったりする
自分で書いたコードは遅すぎて話にならんかったw
124:デフォルトの名無しさん
09/08/03 15:51:51
metafontとかでも解けそうな気がするな。
くりあがりの処理がミソかしら。
125:デフォルトの名無しさん
09/08/03 20:24:40
>>123
a+b+...+c=x の形になる任意の式を与えて
解いてもらうようにするにはどうすれば良いですか?
126:デフォルトの名無しさん
09/08/03 22:34:53
>119 みたく答えになりうる値を全部列挙するワケにはいかないだろうから
モジュール使うほうが良いんじゃないかな
?- use_module(library('clp/bounds')).
?- 3 + X + 4 #= 19.
X = 12.
っていうか、Prologってこのスレで扱って良いものなのかな
127:デフォルトの名無しさん
09/08/04 07:35:13
>>123
さんくすです。swi-prologをインストールして勉強することにします。
128:デフォルトの名無しさん
09/08/04 15:00:08
>>126
他の言語よりも分かりやすく短く書けるのならそれはLL
129:デフォルトの名無しさん
09/08/04 15:04:26
この手の問題だと、論理型が得意だったって事
130:デフォルトの名無しさん
09/08/04 16:16:06
読めないからよく解らんのだが、119のコードって他言語に直訳できないの?
131:デフォルトの名無しさん
09/08/04 16:20:03
アセンブリ
132:デフォルトの名無しさん
09/08/04 16:24:23
119って式が変わったら毎回書き換えるしかないんかな
133:デフォルトの名無しさん
09/08/04 16:35:08
>>130
つ URLリンク(miko.org)
134:デフォルトの名無しさん
09/08/04 17:31:52
汎用性は無いだろうね
ただコード自体が式を列挙してるようなコード…つまり入力データみたいなコードだから
Prolog的には下手なことするより最適な方法かも知れん
135:デフォルトの名無しさん
09/08/04 19:06:45
>>130
論理型言語を、そうでない言語に直訳
するのは基本的に無理。
論理型言語には、処理順序とかまったく
ないし、根拠となる条件式に基づいて
解を求めることしかできない。
136:デフォルトの名無しさん
09/08/04 19:09:31
>>132
式を他の言語で解釈して、
ソースを機械生成すれば。
137:デフォルトの名無しさん
09/08/04 19:16:27
>>135
じゃあロンリー型言語は?
138:デフォルトの名無しさん
09/08/04 20:37:13
ロンリーロンリーロンリーロリー
139:デフォルトの名無しさん
09/08/04 20:51:06
TOMOちゃんじゃないか!
140:デフォルトの名無しさん
09/08/04 23:09:17
どっちにしろマシン語になるんだから、無理なわけないだろ。
141:デフォルトの名無しさん
09/08/04 23:14:19
>>140
誰がそんな話をしたんだろうか
ある言語を使うってことは、その言語の制約内のことしかできないってことだと単純にわかるだろ
ここで話題に上がるような言語は、大概昔ラリーさんだかが言った、
「簡単な事は簡単に、難しいことは可能に」
って作られてるから、とりあえず何でも可能な気がするだけだ。
142:デフォルトの名無しさん
09/08/05 00:59:56
どっちかっつーと、Prologは制御可能なフレームワークって感じ。
普通の言語は流れそのものを書くが、Prologの場合は
基本的な流れはProlog処理系が既に持ってて、ちょいと書くだけである程度勝手に動くものを
コードで制御してやると流れが変わって、複雑な動作ができる。
だから元々Prologが持ってる流れに近い動作は簡単に、遠い動作は面倒になるし
流れそのものが明快なものに対しては、それをそのまま書けば良い手続き型言語に対して
「既にある流れをどう変えればその流れになるか」と考えなくちゃいけないからしんどい。
143:デフォルトの名無しさん
09/08/05 02:45:30
>>142
PrologはDSLの一種と使った方が良いと思う。
正規表現とかSQLとかの仲間。
144:デフォルトの名無しさん
09/08/06 09:19:46
とはいってもPythonにprologモジュールが入ったりすることはないよね
広めたかったら他のプログラミング言語用のライブラリだ、って割りきっちゃったほうがいいのかな
145:デフォルトの名無しさん
09/08/06 09:42:30
On LispにLispで書かれたprologが載ってたな。
結構すくないコードで書かれてたよ
146:デフォルトの名無しさん
09/08/06 10:31:24
何気に欲しいな、Prologモジュール
147:デフォルトの名無しさん
09/08/06 17:31:14
何気に欲しいな、Prologモジュール
148:デフォルトの名無しさん
09/08/06 19:11:44
>>147
インストール済みのPrologを利用する
薄いラッパーだったら、自分ですぐ
作れんじゃね?
149:デフォルトの名無しさん
09/08/06 23:29:52
>>147
Python で作る Prolog 処理系;;URLリンク(www.okisoft.co.jp)
150:デフォルトの名無しさん
09/08/11 06:15:54
保守
151:デフォルトの名無しさん
09/08/11 18:56:52
Pythonって何で「普通に」文字列内で変数展開できないの?
3.0でもformat()とlocal()必要だし。どういう方針なんだろ。誰かおしえて。
これさえできればPython使いたいんだけど。
152:デフォルトの名無しさん
09/08/11 20:15:54
文字列内での変数展開なんて一部LLを除いたらおもいっきり邪道だと思うが。
PythonはReconstruct Cを目指した正統派LLというポリシーだからなあ。
153:デフォルトの名無しさん
09/08/11 21:55:00
LLといってもいろいろあるけど、変数展開はスクリプト言語的な機能だよな。
位置づけ的には
Java系カッチリ言語 <- Python ... Ruby . Perl -> シェルスクリプト系テキトー言語
154:デフォルトの名無しさん
09/08/11 22:10:23
変数展開があると、普段から変数に変な記号つくしな。
155:デフォルトの名無しさん
09/08/11 22:20:26
>>154
なにその間違った理解
156:デフォルトの名無しさん
09/08/12 10:04:38
>>151
>Pythonって何で「普通に」文字列内で変数展開できないの?
なんでだろうね。
Rubyのように文字列中に任意の式を埋め込めるようにするには、パーサをおもいっきり書き換える必要があるからめんどくさいけど、
変数展開ぐらいならできてもいいよね。
s = "x=${x}"
とか。
s = "x=%{x}" % locals()
とかかっこわるいわ。
157:デフォルトの名無しさん
09/08/12 11:29:20
>>151
tempita
158:デフォルトの名無しさん
09/08/12 11:33:11
eval
159:デフォルトの名無しさん
09/08/12 15:28:26
「変数展開をしないで文字列を書くときはシングルクォーテーション」とか
文字列書くときのルールを無駄に増やすのはPythonらしくない
それに比べりゃlocals()かっこわるいなんてw
160:デフォルトの名無しさん
09/08/12 15:30:47
>>159
> 文字列書くときのルールを無駄に増やすのはPythonらしくない
なんという・・・クマー
161:デフォルトの名無しさん
09/08/12 18:57:24
>>159
r"..." とか u"..." とか """...""" とかあるのに、なにがPythonらしくないだよ
信者乙
162:デフォルトの名無しさん
09/08/12 20:06:05
Python-Devでは5年以上前に議論された話題だよ。
変数展開はいつ評価するの?パース時?それとも実行時?
gettextと組み合わさったときはどういう挙動するの?そのほかの文字列メソッドとは?
セキュリティも怖いよね?
結局、文字列に format() メソッドを追加するのが一番汎用的で強力。
変数展開は str.format() よりも限定した状況にしか対応できず、
そんな限られた状況で 「format(vars())」 程度のタイプ数を削減するためだけに
言語規則を複雑にするメリットを見いだせなかったので却下された。
163:デフォルトの名無しさん
09/08/12 21:05:52
> gettext…
意味わからん。
変数展開って言語構造レベルの機能だから
メソッドには展開後の文字列が渡るだけでしょ
164:デフォルトの名無しさん
09/08/12 21:16:43
>>163
"$foo value is $bar"
というメッセージを国際化したくなったとき
gettext("$foo value is $bar")
って出来ないでしょ?
str.format() メソッドなら
gettext("{0} value is {1}").format(vars())
できる。 .format() の方が汎用的。
165:デフォルトの名無しさん
09/08/12 21:55:06
>>164
gettext('$foo value is $var');
166:デフォルトの名無しさん
09/08/12 21:58:38
>>165
gettextっていうのは渡された文字列をキーにして、
現在の言語の翻訳文を持ってくる。
それだとgettext()に渡される前に変数展開されてしまうから、
キーとして利用不可能。
167:デフォルトの名無しさん
09/08/12 22:07:08
>>166
リテラルの変数展開は普通、展開・非展開を使い分けるための記法が用意されてる。
PHP なんかだと ' では変数展開されず、" では展開される。
168:デフォルトの名無しさん
09/08/12 22:10:39
ただ結局HTMLみたいなののためなら、
テンプレートエンジン使う→変数展開イラネって話になる。
169:デフォルトの名無しさん
09/08/12 22:35:12
ほー、sprintf()じゃなくて%なのか。
perlにもformat/write有るけど、ほとんど使われてないね。
仕様がアレだからか。
170:デフォルトの名無しさん
09/08/12 22:36:37
で gettext() なんか使わないほうがよい?
171:デフォルトの名無しさん
09/08/12 23:31:05
使うのは構わんけど、そういうのに限って英語も日本語も中途半端なソフトが出来上がるからなあ。
172:デフォルトの名無しさん
09/08/12 23:55:17
>>162
>変数展開はいつ評価するの?パース時?それとも実行時?
解析はパース時、値の評価は実行時。
つまり "foo=${foo}." というリテラルがあればパース時に "".join(("foo=", str(foo), ".")) に変換してくれればそれでいい。
#いくらなんでも、これくらいのことがわからないPython開発陣ではないだろ。162は分かってないかもしれないけど。
>gettextと組み合わさったときはどういう挙動するの?そのほかの文字列メソッドとは?
>セキュリティも怖いよね?
どれも意味不明。セキュリティって何だよ。変数の埋め込みができたらセキュリティ上問題になるのか。珍説すぎる。
自分ででっちあげた理由を、さもPythonでの公式見解みたいな言い方するのはやめて。自分だけの仮説なら、そうとわかる書き方にしようぜ。
> 結局、文字列に format() メソッドを追加するのが一番汎用的で強力。
> 変数展開は str.format() よりも限定した状況にしか対応できず、
> そんな限られた状況で 「format(vars())」 程度のタイプ数を削減するためだけに
> 言語規則を複雑にするメリットを見いだせなかったので却下された。
これソースある?実際に却下されたというソースがみたい。
それから変数を埋め込みたいのは、タイプ数削減もあるけど、わかりやすさ・読みやすさのためでもあるんだけどな。たとえば
"{0}: not found (file={1}, line={2})".format(name, file, line) より
"${name}: not found (file=${file}, line=${line})" のほうがわかりやすい。
もちろん短いことも重要。
"{name}: not found (file={file}, line={line})".format(**locals()) ← これ、いけてないよな。実行時にパースしてるから遅いし。
173:デフォルトの名無しさん
09/08/13 00:04:39
>>164
>"$foo value is $bar"
>というメッセージを国際化したくなったとき
>gettext("$foo value is $bar")
>って出来ないでしょ?
gettext()使うときに、だれもこんなことしないって。gettext()の引数はキーなんだから、こんなところで埋め込もうとは誰も考えない。
こじつけもいいところ。
str.format()のほうが汎用的なことと、埋め込み文字列がほしいこととは別の話だよ。
.format()をなくしてかわりに埋め込み文字列を導入しようという話ではない。
.format()もいいけど埋め込み文字列も欲しいよねという話なんだけど、信者にはわかってもらえなさそう。
174:デフォルトの名無しさん
09/08/13 00:05:08
ところで、最近なんでRubyが失速してきたんだ?
RoRバブルの崩壊でJAVA・PHP・Pythonあたりへの対抗力の限界が露呈された、ってところ?
175:151
09/08/13 00:09:36
うおおお、なんかみんな語ってる!
やっぱり言語仕様を複雑にするほど必要としてないって判断なんですかね。
まあ、オライリーのPythonチュートリアルで勉強中ですが、
クラス部分の実装の仕方に惚れたので、Python使ってこうかと思います。
あと、Pythonは正規表現がモジュールってところがいいですね。
176:デフォルトの名無しさん
09/08/13 00:15:16
そもそも、変数展開ってそんなに使う?
177:デフォルトの名無しさん
09/08/13 00:23:00
俺はPerlでもsprintf、RubyでもString#%使うなぁ
178:デフォルトの名無しさん
09/08/13 00:27:33
複雑に変数を埋め込むような場合は普通の文字列連結よりは見やすくなるね。
でも当然文字列のパースが入るからパフォーマンスコストは数倍になる。
最初は変数埋め込みばっかしてたけど最近は極力使わないようにしてる。
179:デフォルトの名無しさん
09/08/13 00:45:17
文字列のパース?そんなんコンパイル時だけだろ
パフォーマンスにほとんど影響しない
180:デフォルトの名無しさん
09/08/13 00:46:48
え?
181:デフォルトの名無しさん
09/08/13 00:48:00
Python的にTemplate/substitute機能ってどうなん?
182:デフォルトの名無しさん
09/08/13 01:32:35
>>167
ああ、そういう意味ね。で、結局gettext()で得られたメッセージに対する
変数展開は行われないんだ。
Perlみたいな変数展開を .format() や % で置き換えることはできるが、
逆は不可だ。言語仕様としても、 .format() や % は通常のメソッドや
演算子オーバーロードの範囲で実現できるのに対して、Perlみたいな
変数展開は言語仕様を汚さないと実現できない。
183:デフォルトの名無しさん
09/08/13 01:37:46
>>182
gettextで得られたメッセージに対する変数展開ってどういう意味?
184:デフォルトの名無しさん
09/08/13 01:53:02
勝手にやられるとうざいから、formatが良い落としどころだと思うけどな。
gettextって
print _("hoge: %s, %s") % (x, y)
ってやるだろうから、こいつに関しては展開要らない。
シェルスクリプトなら変数展開ほしいけど、pythonでほしいと思ったことってあんまり無い。
複雑になるなら"%(name)s" % locals()とかテンプレート使うなりする。
(awkでもprint "hoge" $1 "hoge" でいいし、、ちょっと複雑になってもprintfで事足りる)
185:デフォルトの名無しさん
09/08/13 01:58:30
>>172
URLリンク(www.python.org)
が Reject されて
URLリンク(www.python.org)
になった。詳しい議論はMLの過去ログ参照。
変数展開に能力を与えすぎると複雑だったり危険だったりするし、
能力を限定するとわざわざ言語仕様を汚す価値が無くなるので、
%とtemplateクラスの使い分けで十分と判断された。
186:デフォルトの名無しさん
09/08/13 07:32:13
>>178
>でも当然文字列のパースが入るからパフォーマンスコストは数倍になる。
やっぱりこいつわかってないよ。文字列リテラルが変数埋め込みをサポートしている言語なら、
コンパイル時に一度行なわれるだけだから、パフォーマンスに影響なんかあるわけない。
「パフォーマンスコストは数倍になる」とか無知もいいところ。
実行時に毎回パースして遅くなっているのは format() のほうだろ。
"{foo} is {bar}".format(**locals())
これをformat()が毎回パースしてるんだから、パフォーマンスコストが悪いのはどう考えてもこっちのほう。
Perl の "$foo is $bar" のように文字列リテラルが変数埋め込みをサポートしている言語なら、
コンパイルした時点ですでにパースは完了しているので、毎回パースする必要なんかない。
ところでセキュリティーの解説はまだなの? なんで変数の埋め込みができるとセキュリティ上問題になるの?
しっかり解説たのむぜ>>162
187:デフォルトの名無しさん
09/08/13 09:45:18
変数埋め込みだからセキュリティー上問題っていうのは何かあるのかな
意図しない埋め込みが起こるかもしれないぐらい?
188:デフォルトの名無しさん
09/08/13 09:49:21
sprintfやformatではおこらない、何か
189:デフォルトの名無しさん
09/08/13 10:03:34
変数埋め込みがセキュリティ的に危ないのなら、LLに限らずどの言語も危ないことになるな
すばらしい発見なのでさっさと報告してくれ
190:162
09/08/13 10:33:50
>>186
>>178 は俺じゃねーよ。
Python-dev では変数展開がプロポーズされてから、>>162のような議論があった、
というだけの話だよ。別にPerlやRubyや>>186の提案している仕様に脆弱性がある
というわけじゃなない。詳しく知りたかったら2002年の1月と6月のPython-dev過去ログ読め。
以下てきとうに要約。
*どの変数を展開するのかが実行時に決めると、安全じゃない文字列に対して危険
*なので導入するとしたらコンパイル時に $"${foo + bar} is $baz" が
(str(foo + bar) + " is " + str(baz)) に変換されるという仕様はどうだ。
これならセキュリティの問題は無い。
*でも、 % に比べると変数展開時にどの範囲の変数が利用されるのかわかり難いよね
*そんな仕様じゃgettextみたいなケースで使えない
*gettextを、 gettext("$foo is $bar", foo=hoge, bar=hage) みたいな仕様にしたら?
*言語仕様汚してそんな汎用性の無い機能入れるより、汎用的なテンプレートライブラリ
入れたほうがマシだ。
あと、MLでの議論の結果変数展開の代わりに選ばれたのは .format() や % のほうじゃなくて
Templateのほうで、こいつを使うとパースは一回で済むから、繰り返し使う場合は
こっちを使うべきだな。
191:デフォルトの名無しさん
09/08/13 17:46:35
PEP292でPEP215のセキュリティに言及してる部分がさっぱり分からん。
いやみっぽく書かれてるのは分かるけど。
192:デフォルトの名無しさん
09/08/13 17:50:46
いやだから gettext で変数展開は使わんと何度いったら…
193:デフォルトの名無しさん
09/08/13 18:29:14
>>192
だから、gettextでは使わないみたいに使える状況が限定される
変数展開より、広い状況で使える Template の方が良いよねっていう
議論をしてるんだってば。
194:デフォルトの名無しさん
09/08/13 18:37:46
>>193
意味がわからん。
それとも単に歯応えしたいだけ?
195:デフォルトの名無しさん
09/08/13 19:58:25
意味がわからん。
196:デフォルトの名無しさん
09/08/13 20:10:00
いい歯ごたえ!
197:デフォルトの名無しさん
09/08/13 20:13:48
リテラルでしょ?
たとえば、辞書のキーに使うこともあんまり無いだろうし、
特に問題無さそうだけどね。
198:デフォルトの名無しさん
09/08/13 20:21:21
歯応えwwwwwwwwwwwwwwwwwwwwww
199:デフォルトの名無しさん
09/08/13 20:49:49
マジレスすると、口答えと歯向かう、がごっちゃになったんだろ
どっちも上から目線ではあるけど、それは敢えてだろうな
200:デフォルトの名無しさん
09/08/13 21:01:13
言いたいことは察せられる
「噛みつく」なら適切かと思う。表現って難しい
201:デフォルトの名無しさん
09/08/13 22:23:24
>186-189
C言語のprintfにはセキュリティホールがあるけど
LLでその書式文字列攻撃がどこまで応用効くか俺は判らんな。
ただ、printf/sprintf/format/% の書式指定文字列に変数埋め込みを使っちゃうと
予想外の挙動を招いてしまう可能性が高いのは間違いないよ。
202:デフォルトの名無しさん
09/08/13 23:37:55
そういや、ここのPythonユーザはみんな3.x使ってるの?
俺は本業Java趣味Pythonってこともあって、今日から移行することにしたんだが。
203:デフォルトの名無しさん
09/08/14 00:01:53
仕事2.5、趣味2.6だよ。
3.1は入れてあるけどほとんど使わない
204:デフォルトの名無しさん
09/08/14 03:39:07
特にprintfとprintで混乱したことは無いな。
予想外の挙動ってのがあるのか。
pythonこえー。
205:デフォルトの名無しさん
09/08/14 05:53:04
>>193
>だから、gettextでは使わないみたいに使える状況が限定される
>変数展開より、広い状況で使える Template の方が良いよねっていう
>議論をしてるんだってば。
gettext使う場合こそすごく限定されるだろ。使わない場合のほうが圧倒的に多い。
特殊な事例をさも一般的なことのように見せて反対するのはバカのすること。
>>201
>ただ、printf/sprintf/format/% の書式指定文字列に変数埋め込みを使っちゃうと
>予想外の挙動を招いてしまう可能性が高いのは間違いないよ。
それ、変数埋め込みに限った話じゃないし、変数埋め込みの欠陥ではない。
結局、なんとかしてPythonの仕様を正当化したいだけの信者にしかみえない。
206:デフォルトの名無しさん
09/08/14 09:58:41
いまのpythonにどういう風に導入したらいいと思う?
uとかrのまねして、e""みたいにすれば、影響範囲は少なそうだけど。
効率を考えなければ、Template("文字列").safe_substitute(vars())とかに置き換えればいいのか?
207:デフォルトの名無しさん
09/08/14 10:10:12
スレリンク(newsplus板)
208:193
09/08/14 11:06:30
>>205
gettextは目的が明確な専用ツールだし、言語仕様ではなくライブラリ。
それに対して、文字列に対して変数を展開するのは汎用的な要求で、
言語仕様に組み込むとすれば(PerlではなくPythonでは)できるだけ汎用に
いろんな目的に使えることが要求される。gettextと同じレイヤで語れない。
で、Templateならgettextに対応できて、Perl/Ruby方式変数展開では
対応できない。ならば汎用でしかも言語仕様を汚さないで済む方が良い、
というのがPython的な判断。
実際に string interpolation に対して gettext で使えねーと反論しているメールは
こちら。
URLリンク(mail.python.org)
209:193
09/08/14 11:20:41
ちなみに、gettextはリテラル以外の文字列に対する変数展開がほしいという
要求のわかりやすい例であって、gettextのためだけに interpolation が却下された
訳じゃないぞ。
210:デフォルトの名無しさん
09/08/14 11:30:39
>>206
既に str.format(**vars()) で実現できる以上、言語仕様を汚して15タイプを
削減する提案が通る見込みは無いだろうな。
あったらときどき便利な機能を言語仕様に際限なく組み込んでいけばPerlに
なってしまう。
211:デフォルトの名無しさん
09/08/14 16:14:51
俺的にはstr.format()で満足。信者だからかな?w
212:デフォルトの名無しさん
09/08/14 16:20:45
おまえらお盆に何やってんだ
213:デフォルトの名無しさん
09/08/14 20:13:15
センスが悪くて誰もやらないようなことを持ち出して、
それを出来ないように蓋をするのがPython流なんだと理解した。
214:デフォルトの名無しさん
09/08/14 21:25:30
はいはい
215:デフォルトの名無しさん
09/08/14 21:40:14
別に蓋してない気がするけど。元々できないんだし。
216:201
09/08/14 23:05:48
>205
俺自身はRubyがメインだし、Pythonを正当化したワケじゃなく
>186-189の疑問に判る限りで答えただけ。
何がなんでも正当化したいなら「変数展開とeval()組み合わせたら~」とか言ってセキュリティーホールがあるって主張するし
わざわざ「printf/sprintf/format/% の書式指定文字列に変数埋め込みを」という限定を入れたりしないよ。
217:デフォルトの名無しさん
09/08/14 23:07:17
実際、変数展開ある言語だと何かもやもやするから、
Pythonにはいらんな。
218:デフォルトの名無しさん
09/08/14 23:26:36
組み合わせるまでもなく
evalだけでセキュリティホールだな
219:デフォルトの名無しさん
09/08/14 23:32:18
まあ、「何がなんでも正当化」をするなら、って話だからw
220:デフォルトの名無しさん
09/08/15 01:23:28
俺もない方がいいと思う。それこそがPythonの存在理由と思うから。Perlみたいな言語はPerlだけでいい。
221:デフォルトの名無しさん
09/08/15 04:30:09
Perl
my $price = 100;
print "price = $price";
PHP
$price = 100;
echo "price = $price";
Ruby
price = 100
print "price = #{price}"
222:デフォルトの名無しさん
09/08/15 05:32:15
JavaScript
price = 100
print "price = " + price
そろそろJavaScriptに、変数展開もsprintf相当の機能も
ないことに誰か言及してあげてもいいと思うんだ
223:デフォルトの名無しさん
09/08/15 06:58:06
>>222
ExtJS
224:デフォルトの名無しさん
09/08/15 06:59:23
>>210
>言語仕様を汚して
このへんが信者だよな。
225:デフォルトの名無しさん
09/08/15 07:09:19
全然目的が見えない。
226:デフォルトの名無しさん
09/08/15 11:00:20
JavaScriptを使う理由って、ブラウザ上で動くスクリプト言語が事実上JavaScriptしかないってだけだからな。
227:デフォルトの名無しさん
09/08/15 11:17:46
結局そこは、ブラウザの政治力学なのでしょうがない。
228:デフォルトの名無しさん
09/08/15 12:15:26
JavaScriptの近年の過大評価って、不良の善行、落ちこぼれの平均点みたいなところがあるよな。
最初はあんなにダメな子だったのに…という。
229:デフォルトの名無しさん
09/08/15 12:16:24
政治力学がよく解らんが、ブラウザとしてはそんなに多数の言語をサポートしたくないんだろう
HTMLとJSだけサポートするから、あとはサーバ側でやってよっていう
あんまり馬鹿でかいエンジンになられるのも嫌だから、俺はそれで良いと思う
230:デフォルトの名無しさん
09/08/15 12:26:47
>>229
サポートしたくないもなにも、誰も立候補してない
231:デフォルトの名無しさん
09/08/15 12:37:51
JavaScript、結構トリッキーなことが出来て面白いぞ。
232:デフォルトの名無しさん
09/08/15 12:57:46
言語としてはかなり先進的な方
あの普及率で、例えばクロージャが使えるのは珍しい
233:デフォルトの名無しさん
09/08/15 13:01:24
【Javascript,Perl,PHP】LLバトルロワイヤル7【Ruby,Python】
234:デフォルトの名無しさん
09/08/15 13:03:20
ウェブブームに便乗して注目されだした途端に起きた
JavaScriptの言語仕様を讃えれば通っぽいという風潮には飽き飽き。
235:デフォルトの名無しさん
09/08/15 13:13:37
JavaScriptダメな子
JavaScriptやればできる子
JavaScriptでもやっぱりダメな子
236:デフォルトの名無しさん
09/08/15 15:02:15
Firefox上のJSはかんりできる子なんだけど
IEのJSがそこそこだから全体的に評価が引っ張られてる感じ
237:デフォルトの名無しさん
09/08/15 21:40:06
えぇっ? イベントやDOMとかで無く、言語のレベルで違いってあった?
パフォーマンスとかって話?
238:デフォルトの名無しさん
09/08/15 22:19:15
debugger
239:デフォルトの名無しさん
09/08/16 00:33:06
>>237
letとかってIEでも使えるの?
240:デフォルトの名無しさん
09/08/16 01:33:02
getter/setterや分割代入なんかもIEにはまだ無かった気がする
あと、E4X
241:デフォルトの名無しさん
09/08/16 04:08:52
iteratorとかgeneratorとかクロージャ記法とか
要はjs1.7以降の新機能
242:デフォルトの名無しさん
09/08/16 14:22:09
バージョンの違いか。理解しました。
243:デフォルトの名無しさん
09/08/20 18:54:48
まあIE6で動作しないと不可なんだけどね
244:デフォルトの名無しさん
09/08/20 19:03:45
コンマを1つ付けただけで動かなくなるIEに絶望した。
245:デフォルトの名無しさん
09/08/20 19:11:48
CやJavaの流れで付けても動いてよとは思うが、仕様的にはIEが正しいぽいな。
246:デフォルトの名無しさん
09/08/20 20:24:20
やっとIE6を捨てる流れになってきてるね
247:デフォルトの名無しさん
09/08/20 20:41:43
>>246
流れ、ってだけなら、IE8が出た辺りからずっと。
URLリンク(gs.statcounter.com)
ようやく、普通に勧めて反発を食らいにくくなってきた、っていう感じ。
248:デフォルトの名無しさん
09/08/20 22:17:24
ブラウザ依存のサイトなんてうんこだよ。
249:デフォルトの名無しさん
09/08/20 22:21:21
コストや表現力って問題があるんだよ。
ぶっちゃけ、一通りの記述で済めば特定ベンダー以外のみんなが幸せになれるんだ。
それを阻害するブラウザこそがうんこだよ。
250:デフォルトの名無しさん
09/08/21 00:07:09
結論としてはブラウザは全部うんこ
251:デフォルトの名無しさん
09/08/21 08:38:47
全機能を完全な形の完全な見栄えでIE6にも提供する無論追加料金なしとかアホなことが蔓延してるからだ
イマイチ外見に基本機能プラス程度でいいのならやってやるさ
いまさらIE6使ってる一般人向けサイトなんてケータイサイトをCSSで光らせる程度でいいんだよ
252:デフォルトの名無しさん
09/08/21 09:57:40
結論としては http/javascript は全部うんこ
253:デフォルトの名無しさん
09/08/22 02:50:42
そのうんこをこねくりまわして納期までになんとかすんのが俺らの仕事
254:デフォルトの名無しさん
09/08/22 02:56:08
>>251
一応言っておくと、MSが想定する「一般人」は、大抵IE7か8を使ってる。
自動アップデートだし。
微妙すぎる自称玄人もしくは自称マニアのみが、IE6。
あとはまあ、会社でIE6縛りってのもあるっちゃあるが、それは好きで
やってる訳じゃないし、個人批判の対象にはあんまりしたくはない
255:デフォルトの名無しさん
09/08/22 11:06:07
IE6って、Windows98とかMeとかの古いPC使ってる人なのかと思ってたが
マニアが使ってるの?
なんかピンとこないな
256:デフォルトの名無しさん
09/08/22 11:33:35
ネットバンキングとかの主要サービスでも
IE6しか対応していないというところがあるよ。
257:デフォルトの名無しさん
09/08/22 13:42:13
うちの出先は全てにおいて2k/IE6前提
258:デフォルトの名無しさん
09/08/22 13:51:53
IE6ってまだトップシェアじゃないっけ?
259:デフォルトの名無しさん
09/08/22 14:17:00
>>258
韓国の方ですか?
260:デフォルトの名無しさん
09/08/22 14:24:25
あぁ、トップはもうIE7に切り替わってたんだねw 失礼しました
例えばこの調査だと4人に1人がまだIE6だね
URLリンク(internet.watch.impress.co.jp)
261:デフォルトの名無しさん
09/08/22 14:27:42
勘弁してほしいよね
262:デフォルトの名無しさん
09/08/23 17:54:57
IE6ユーザが減ってきてるのはありがたいが、HTML5の動きを
誰かに止めて欲しい。なんでXHTMLじゃないんだよw
263:デフォルトの名無しさん
09/08/23 20:11:25
HTML5でもapplication/xml+xhtmlなxmlで文章を書けてそれはXHTML5と呼ばれる
XHTML2固有の機能が使いたいというならもっともだけどなんかあったっけ
264:デフォルトの名無しさん
09/08/23 20:12:43
application/xhtml+xmlだった
265:デフォルトの名無しさん
09/08/23 20:45:19
>>264
まあ、IEは8になってもそれを解釈できないんだけどな
これはIEというよりはWindowsも含めた問題かもしれんけど
266:デフォルトの名無しさん
09/08/24 00:10:37
>>262
xは規約がガチガチすぎたわりには
使い勝手がよくなかった。
初心者向きでもなかったし、
HTMLというのはもっと気軽に書けるべきもの。
267:デフォルトの名無しさん
09/08/24 00:33:24
xhtmlの存在意義はxmlパーサでパースできることかと
htmlのいいパーサがあればそれでいいんだけどね
268:デフォルトの名無しさん
09/08/24 11:52:05
> 初心者向きでもなかったし、
> HTMLというのはもっと気軽に書けるべきもの。
という思想の人が、入れ子が互い違いになってたり、
どうにもパースに困るようなコンテンツの量産を奨励するわけですね。
269:デフォルトの名無しさん
09/08/24 12:24:42
手軽に書きたい人は手書きで書くなよ。
270:デフォルトの名無しさん
09/08/24 12:33:10
そーいやホームページビルダーってまともになったの?
271:デフォルトの名無しさん
09/08/24 12:38:34
むしろ、手軽に書きたいから手書きなんだが
272:デフォルトの名無しさん
09/08/24 12:55:02
HTML5はムダにアグレッシブすぎるよね。
誰得つか、理想論すぎる印象が強い。
成功しないと思うんだが。
273:デフォルトの名無しさん
09/08/24 13:51:30
俺はWYSIWYG嫌いだったし、手書きも面倒だと思ってたから
タグエディタっての使ってたな
基本機能としては普通の色分け付きエディタなんだけど
各種タグ補完やタグの一覧からの選択ができて
各タグごとのオプションがダイアログでも弄れたり、整合性チェックやプレビューのついてるやつ
274:デフォルトの名無しさん
09/08/24 15:09:17
>>266
html5が初心者に優しいかどうかと言ったら全然そんなこと無いと思うけど
そもそもhtmlの仕様上タグを省略してよい箇所を完全に把握できる時点で初心者じゃない
ブラウザ間の解釈の相違もあるし初心者こそタグの省略をすべきではない
>>272
xhtml2と比較したらまだマシだろw
それに実装を先行させてるからそれほど仕様と実装が乖離するとも思えない
275:デフォルトの名無しさん
09/08/24 15:53:03
xhtml2は本当に誰得だったな。
5はIE以外ではすぐに実装されるだろうな。
276:デフォルトの名無しさん
09/08/24 23:02:26
HTML5はブラウザベンダー主導で策定していて、
複数のブラウザで実装されたら仕様にするというやり方にしているので、
XHTML2のようなことにはならないかと。
277:デフォルトの名無しさん
09/08/25 09:00:33
そうやってがんばってHTML5がリリース
されても、どうせIE+SLが勝つ気がする。
278:デフォルトの名無しさん
09/08/25 10:20:57
SLって何かと思ったらSilverlightか。
279:名無し学生
09/08/25 10:37:16
Visual Basic の課題で困っております。
誰かお答えください。本当に助けてください。
1.Visual Basicの関数で数値を文字に直すCStr()とStr()の違いについて
2.戻り値の違いが確認できる方法を考え、戻り値の違いについて実際に確認し、
その確認方法と違いを具体的に述べよ。
注意:実際にやったことと、確認した違いを簡潔かつ具体的に書くこと。
3.下記の計算結果などから、Visual Basicで計算できる数値の桁数について考察をまとめ、
何故そのような制限があるかについて理由を答えよ
1) 48 x 100 - 81
2) 12 ÷ 9.3 x 247
3) 0.2 - 12 ÷ 69
4) -12 ÷ 100 + 100
280:デフォルトの名無しさん
09/08/25 11:22:29
>>279
help読みなよ。
学生なんだから、その位やりさない
281:デフォルトの名無しさん
09/08/25 11:24:59
マルチポスト報告スレ
スレリンク(tech板)
スレリンク(tech板:688番)
スレリンク(tech板:183番)
スレリンク(tech板:793番)
スレリンク(tech板:388番)
スレリンク(tech板:601番)
スレリンク(tech板:408番)
スレリンク(tech板:711番)
スレリンク(tech板:279番)
スレリンク(tech板:60番)
スレリンク(tech板:937番)
スレリンク(tech板:963番)
スレリンク(tech板:547番)
スレリンク(tech板:861番)
スレリンク(tech板:420番)
282:デフォルトの名無しさん
09/08/25 12:10:00
課題でVBはねーよ
283:デフォルトの名無しさん
09/08/25 21:25:39
URLリンク(www.jiji.com)
ワロw
284:デフォルトの名無しさん
09/08/25 21:37:29
今回改修対象でないのに勝手に改修したのか
URLリンク(www.kahoku.co.jp)
285:デフォルトの名無しさん
09/08/29 11:16:25
人イネ~!?
LLTV開催中‼
286:デフォルトの名無しさん
09/08/29 12:09:16
ですねー。そういう国ですからね。
向上心あるプログラマなら飽きちゃうと思う。
287:デフォルトの名無しさん
09/08/29 12:31:46
政治的発表だよ。そういうのはw
288:デフォルトの名無しさん
09/08/29 14:07:55
東京だからなー。
新幹線か飛行機になる。
知り合いが居れば別だろうけど、こっち方面では居ないし。
289:名無しさん@そうだ選挙に行こう
09/08/30 18:08:55
HSPもいちおうLLだよね?
290:名無しさん@そうだ選挙に行こう
09/08/30 18:10:19
あーうんまあ一応は
291:名無しさん@そうだ選挙に行こう
09/08/30 18:38:25
特定用途(ミニゲーム)のための言語だし、グラフィックライブラリが重視されてるし、まあ良いんじゃない
292:名無しさん@そうだ選挙に行こう
09/08/30 19:42:00
DSLとLLって直行する概念?
293:名無しさん@そうだ選挙に行こう
09/08/30 19:50:22
ぶっちゃけDSLは言語ではない。
294:デフォルトの名無しさん
09/08/30 20:41:00
>>293
Languageと付いている以上「言語」には違いないと思うが。
汎用プログラム言語ではない、というのが適切かと。
295:デフォルトの名無しさん
09/08/30 21:18:26
そもそも、プログラミング言語ってなんで必要なの?って話だよな。
RADが発達すれば将来的には図だけでプログラミングできるんだろうし。
言語ベースってのがいまいち間違った発想な気がして。
296:デフォルトの名無しさん
09/08/30 21:26:08
うん、20年前くらいから同じようなこと言ってる
たぶん、20年先も同じようなこと言ってるはずだ
297:デフォルトの名無しさん
09/08/30 21:26:43
>>295
それはないと思うw
未来はTV電話だ!みたいな発想だと思われw
298:デフォルトの名無しさん
09/08/30 21:28:52
一応、JavaBeansのような感じで
・ 部品を作るプログラマ
・ 部品を利用する一般ユーザー
に二極化するだろうとは予想されている
極めて明快視覚的に自由に結合・動作可能なライブラリってことだな
でも、野良ライブラリとか自作ライブラリとか作る人はやっぱ
言語ベースで従来型のプログラミングしてるはずだ
299:デフォルトの名無しさん
09/08/30 21:34:00
我々が相手に何かを伝えたいとき、
口頭にせよ文章にせよ、使うのはもちろん言語だろう
であれば、計算機に対して同じ方法をとるのは自然な発想ではないか
グラフィカルな記述の最大の問題点は、記述密度が低いことだろうなあ
フローチャートぐらいじゃ文字に勝てない
もちろんメリットが生かせる部分では、どんどん採用されていくだろうが
300:デフォルトの名無しさん
09/08/30 21:34:07
アニメとかドラマとか、そういうのでわかりやすく表現されてはいるけど
結局中身を理解しないといけないのは変わらないんだよね
ロボットの行動プログラムとして一部あるぐらいしか有効利用されてるのが思いつかん
301:デフォルトの名無しさん
09/08/30 21:39:51
分岐条件を表現できない時点でゴミ
まあ、天才のブレイクスルーに期待してみよう
302:デフォルトの名無しさん
09/08/30 21:42:50
>>298
低俗な話になるけど、
ニコニコのMADややる夫のAAとかの世界だと(意図しない)二極分業化がかなりすすんでるよな
あのあたりが流行るのって一重に素人でも扱える「部品」がそこらへんに転がってるからだと思うんだ。
今でもライブラリは転がってるけど、
素人が利用できる部品ってどれくらいあるんだろう。
>>299
>>301
つうかフローチャートは再利用を前提としていない時点でゴミ
303:デフォルトの名無しさん
09/08/30 21:44:31
分岐とループぐらいは書けるよ
そういう部品が用意されてるから
304:デフォルトの名無しさん
09/08/30 22:37:00
条件分岐の記述と分岐条件の記述にはウンコとウコンくらいの違いがある
305:デフォルトの名無しさん
09/08/31 06:46:38
現状で図だけでプログラムできる言語はあるけど
全ての分野において使いやすいもににはなっていないしならないと思う
306:デフォルトの名無しさん
09/09/03 01:44:06
低能言語使ってる俺らが部品ってことはないしょ
307:デフォルトの名無しさん
09/09/14 17:30:23
> 730 名前:デフォルトの名無しさん [sage]: 2009/09/14(月) 15:34:52
> Python 3.0 は過去のしがらみを捨てた大掃除なんだから、比べるとしたらRuby 1.9じゃなくてRuby 2.0だろ常考・・・
Python 3.0は順調に出たから、ぜんぜん順調じゃないRuby 2.0なんか全く比較にならんだろ。
308:デフォルトの名無しさん
09/09/14 18:46:17
Python 2.x と Python 3.0 両方で動くプログラムを書くのが難しいのは最初からそう
設計されているからで、この点は Ruby 2.0 に近い。
単に、Pythonの大掃除が決行された時期と Ruby の大掃除が決行される時期が
違うだけの話。
なので、Python 3.x と 2.x 両方で動くプログラムを書くのが Ruby 1.9 と 1.8 両方で
動くプログラムを書くのが難しいというのは、 Python が Ruby よりも互換性を軽視する
根拠にはならない。比較するなら Python 2.7 と Python 2.6 にしておくべき。
309:デフォルトの名無しさん
09/09/14 22:01:52
そういう見方でなんでPythonとRubyを比較せにゃならんのか解らんが。
メジャーバージョン違いとマイナーバージョン違いは全然意味合いが違うだろうに。
そもそもRubyは「その時楽しければいい言語」なんで互換性でPythonと比較するのは
間違っていると思う。
310:308
09/09/14 23:45:57
>>309
バージョン管理スレで、Rubyの方がPythonよりもバージョン間の安定性があるという
ことをPython3を引き合いに出して主張する人がいてね・・・
311:デフォルトの名無しさん
09/09/15 00:42:57
Rubyは脳力消費が低い言語だお
312:デフォルトの名無しさん
09/09/15 05:19:34
Rubyはやたらと重かった記憶しかないんだが
何かと勘違いしてるのかもしれん・・・
313:デフォルトの名無しさん
09/09/15 06:12:23
信者がうざい三大ソフト
Ruby Sai メタセコ
314:デフォルトの名無しさん
09/09/15 08:51:41
RubyはWeb2.0のSaaSをクラウドするのに最適な言語
315:デフォルトの名無しさん
09/09/15 08:53:07
ユビキタスしたいときはどれがいいですか?
316:デフォルトの名無しさん
09/09/15 09:36:53
>>312
処理系は重いね。でも書くときは楽だなあ。
やたらメソッドチェーンするお陰で、カーソルを前に戻す頻度が少なめ。
Pythonのやり方も解るんだけどね。あっちのが安全性は高いだろうし。
サクッと書くのはRuby、スクリプトなんだけどカッチリ書くときはPython使ってるわ。
317:デフォルトの名無しさん
09/09/15 18:05:54
>>316
オレは全部Perl。
318:デフォルトの名無しさん
09/09/17 01:08:52
>>316
括弧いらんおかげでメソッドチェーンは本当に書きやすいけど、
その代償に括弧がメソッドコールじゃないし、関数がオブジェクトじゃないから
__send__とか。。。ここらがPythonの方が決定的に好きなところ。
StringクラスがあるのにSimbolはクラスじゃないんかい、みたいな。
319:デフォルトの名無しさん
09/09/17 01:32:32
Rubyは、「こういう場合はこう書きたい」という感覚を重視して、
Pythonは全体の整合性を重視している感じだね。
320:デフォルトの名無しさん
09/09/17 07:59:44
F#も()付けないようだな。
321:デフォルトの名無しさん
09/09/17 08:17:06
そこでまったくパラダイムの違う言語を例に挙げてもだな・・・
OCamlは()無しですごく一貫性が取れてるだろ。
322:デフォルトの名無しさん
09/09/17 08:23:35
Haskellもだよ。
323:デフォルトの名無しさん
09/09/17 08:40:17
問題にしているのは括弧があるかないかではなくて一貫性であって、
括弧が無い代わりにほかの部分にしわ寄せが行っていたら意味が無い。
x = y (言語によってletなどがつく) という構文でyを関数呼び出しとして
扱うのは、例えば y = 3 としたときにすら y が 3 を返す関数になる、
手続き言語的な変数の無い関数型言語だから一貫性が取れている。
Rubyの場合、yが何かによって x = y の意味が変わってしまう。
324:デフォルトの名無しさん
09/09/17 09:01:16
そういうのはPerlから受け継いでるんだろうな。
325:デフォルトの名無しさん
09/09/17 10:42:06
Rubyで関数呼び出しを括弧必須にしたところで、メリットがあまり無いんだよなあ。
Ruby的には関数はオブジェクトでは無く、オブジェクトの機能でしか無いから
括弧無しの動作はエラー以外には取れない。
「関数オブジェクトを取り出す」なんて操作にすると文法自体にメスを入れることになる。
ちなみにPythonの場合、関数呼び出しに括弧が要る、というよりは
オブジェクトに対して呼び出しを試みるのが括弧、というのが正しいと思う。
括弧を付けない場合が関数オブジェクトの取り出しなんじゃなく
普段から関数オブジェクトを取り出していて、そこに括弧を付けて呼び出してる。
でも関数がオブジェクトではないRubyの場合、そうはいかない。
関数はオブジェクトの機能でしか無いので、関数を実装したオブジェクトを取り出すことになると
それこそ文法が崩壊してることになる。
326:デフォルトの名無しさん
09/09/17 11:18:55
つまりRubyにはファンクタしかないってことなのか?
327:デフォルトの名無しさん
09/09/17 11:45:18
真の意味での関数オブジェクトは無いと思うよ。
一応、似たことができるようにProcとかMethodとかUnboundMethodってクラスはあるけど
これらは、単独でオブジェクトとしては存在しえない関数をラップする為のクラスだし。
当然ながら、これらにラップされた関数を呼び出すには
括弧を付けてもダメで、call()などのメソッドを呼ばなきゃならない。
328:デフォルトの名無しさん
09/09/17 12:07:29
真の意味でもなにも、ないよ。
括弧を付けてもダメなのは、文法上の理由もあるけど。
(Javaも同じだけど、関数(手続き)オブジェクトという存在がないことを前提に
言語がデザインされている)
329:デフォルトの名無しさん
09/09/17 14:57:46
>>328
>(Javaも同じだけど、関数(手続き)オブジェクトという存在がないことを前提に
>言語がデザインされている)
Procがあるから、関数オブジェクトが存在しないというのは言い過ぎじゃないかな。
正確には、メソッド名と変数名の名前空間が分けられている、といったほうがいいような。
330:デフォルトの名無しさん
09/09/17 21:53:34
やっぱり、
y = f(x)
F = f
なら
Y = F(x)
だな。
331:デフォルトの名無しさん
09/09/17 23:57:26
>>330
どゆこと?
332:デフォルトの名無しさん
09/09/18 00:00:01
Y = y
ということだろう
333:デフォルトの名無しさん
09/09/18 00:01:50
ひとまわり大きくなるってことかと思った
334:デフォルトの名無しさん
09/09/18 01:22:21
「Rubyは完全性一貫性より自然さを感じる。」
URLリンク(d.hatena.ne.jp)
335:デフォルトの名無しさん
09/09/18 01:50:33
俺が無知だっただけかも知れないけど、$_POSTで受け渡しの文字化けを調べていたんだけど、
「無」という文字(1字文字列)を受け取って正規表現で文字列の前後の空白を除いたら、本当に
「無」(つまりnull)になってしまって、エラー表示されまくりだった。
試しにPHPで構築されている、とあるサイトの入力欄に「無」の1文字だけ入力して送信したら見事に
エラーになったみたいで(画面が真っ白)処理が止まってしまった。
EUC-JPからUTF-8にconvertするときにおかしくなっているような気がするが、原因はよく分らん。
誰か手練の人がいたら解明して欲しい。
336:デフォルトの名無しさん
09/09/18 01:53:38
>>335
1.PHPのMLにでも投げろ
2.WebProg板に適当なスレがあるだろ
3.せめてその正規表現とやらをさらせ
そのあとで、このスレでの有用なレスを期待してくれ。もしかしてマルチ?
337:デフォルトの名無しさん
09/09/18 02:32:30
>>336
メーリングリストでは参加しているPGの数が少なくて、というか初耳という奴が多かったので
こっちに出してみた。正規表現は
$title = preg_replace('/^[ ]*(.*?)[ ]*$/', '$1', $title);
$_POST で $title の奴を受け取って正規表現で半角と全角の空白を除去。
その後echoで表示させたら無表示。文字化けだったら?なんだけどnullなのでなんの表示も無し。
mb_convertで色々試しても反応無し。
「無」の文字だけなのよ。「鼻」とか「法」「院」だったら?なんだけど、「無」のときはnullに
なってしまってる。よく分らん。
338:デフォルトの名無しさん
09/09/18 02:40:27
追加
空白除去の正規表現がおかしいと思ってオミットしたら、「無」の受け渡しが
?で表示された。だからたぶん「無」の1文字をPOSTで渡して正規表現で空白除去するところで
おかしくなっているのだと思う。
だって適当に探ったPHPで構築されているサイトで「無」を入力したらおかしくなったもん。
ここなら見てる人が多いかなっと思って聞いてみたの。
339:デフォルトの名無しさん
09/09/18 02:44:21
>>334
平鍋はまともだけど
まつもとは自分勝手で
顧客のこと全然考えてないってことが分かった
340:デフォルトの名無しさん
09/09/18 07:47:03
何を今さら。
341:デフォルトの名無しさん
09/09/18 11:14:11
自分勝手ぶりはGvRも似たようなもんだろ。
どちらもコミット拒否権持ってるし。
342:デフォルトの名無しさん
09/09/18 14:48:15
コミット権は自分勝手とは言い切れないが
平鍋が「顧客の満足」を強調しているのに
Matzは「自分の満足」しか表明していない件
343:デフォルトの名無しさん
09/09/18 16:49:43
>>342
役割分担して答えてるからそうなるよね。
まぁそうでなくても俺言語作者なんてそんなもんだけど。
344:デフォルトの名無しさん
09/09/19 01:03:45
>>295
>RADが発達すれば将来的には図だけでプログラミングできるんだろうし。
それ10年以上前にも言われていた。
結局、図でのプログラミングって特定用途限定なんだよね。
345:デフォルトの名無しさん
09/09/19 05:19:06
そのうち詩でプログラミングできるようになるよ
346:デフォルトの名無しさん
09/09/19 05:31:12
マルチタッチのディスプレイがマウスくらい普及するころには、図によるプログラミングも一派的になるかもね。
そして、文脈によって太矢印の解釈が違う言語とか、楕円を多用するために見た目がスカスカになる言語とかが登場する。
347:デフォルトの名無しさん
09/09/19 08:39:45
0が偽じゃないなんて・・・めんどくさい!
348:デフォルトの名無しさん
09/09/19 09:39:35
"0" が偽なのもめんどくさいけどな。
349:デフォルトの名無しさん
09/09/19 09:45:27
>結局、図でのプログラミングって特定用途限定なんだよね。
用途限定なんだろうけど、SQLは実現しているんじゃね?
Eclipseでもソレっぽいプラグインとかあるし。
ただ、SQLを直打ちでテキストで適度に整形した方が図よりも理解しやすい場合が多い。
350:デフォルトの名無しさん
09/09/19 09:57:59
>>348
文字列を判定に噛ましてるのがアホなだけじゃん。
351:デフォルトの名無しさん
09/09/19 10:03:19
それは単純なSQLだけだろ。ORMだって、浅いレベルならSQLまったく意識せずに済むし。
352:デフォルトの名無しさん
09/09/19 10:32:53
プロパティにundefinedが代入されていることがあるのもめんどい
353:デフォルトの名無しさん
09/09/19 10:34:21
俺銀行で芸術的なクエリ見た事あるな。
Access+ODBC(OracleやDB2)だったけど。
普通のプログラマには銀行の要求する算術を理解できないので、
行員がクエリを作ってたりするけど、かなり感動を覚えた。
354:デフォルトの名無しさん
09/09/19 10:37:43
Accessのクエリエディタはホントすばらしいと思う
ただ、ブラウザとVBエディタが何とかなって欲しかった
355:デフォルトの名無しさん
09/09/19 10:49:10
SQLをプログラミング言語って言う香具師は
HTMLもプログラミング言語だと思ってそうだな
356:デフォルトの名無しさん
09/09/19 10:53:02
VBには芸術的な「マクロの記録」があるだろ
あれこそ究極のイメージプログラミング
357:デフォルトの名無しさん
09/09/19 10:53:47
ガラクタ箱の中身という意味ではどれも同じ
358:デフォルトの名無しさん
09/09/19 11:01:44
ポカーン?
359:デフォルトの名無しさん
09/09/19 11:10:03
>>355
OracleのSQLなんかはチューリング完全なんだがそれでもプログラミング言語でない?
360:デフォルトの名無しさん
09/09/19 11:18:26
>>359
PL/SOLと勘違いしてない?
361:デフォルトの名無しさん
09/09/19 11:25:17
HSPもチューリング完全です(^o^)
362:デフォルトの名無しさん
09/09/19 11:30:37
URLリンク(www.valuedlessons.com)
ちなみに、共通テーブル式が導入されたのはSQL:1999で、ウィンドウ関数はSQL:2003からね。
363:デフォルトの名無しさん
09/09/19 11:44:26
brainfuckのインタープリタもどこかで見たな
364:デフォルトの名無しさん
09/09/19 13:19:07
>>356
あれは良いよねぇ。
いったんあれで操作して関数名を調べてから,
WIN32Ole で書き直したりしてる。
365:デフォルトの名無しさん
09/09/19 13:58:39
HSPとRubyってどっちがいいの?
366:デフォルトの名無しさん
09/09/19 13:59:50
びっくりするくらい頭の悪い聞き方だな
367:デフォルトの名無しさん
09/09/19 14:29:36
Ruby, Phthonのことを書いてね。
368:デフォルトの名無しさん
09/09/19 14:33:26
友達にHSPかRubyがいいと勧められたので・・Perlもいいかなと思ってます。
369:デフォルトの名無しさん
09/09/19 15:05:30
VBでいいんじゃね?どうせWindowsでしょ?
あえてHSPを選択する意味ってどんなのがあるんだろう。
370:デフォルトの名無しさん
09/09/19 15:14:50
>SQLをプログラミング言語って言う香具師は
アレは構造化照会言語(w)であってプログラムとはちょっと違うだろ。
手続きを記述すると言う意味においては似てるだろうけど、
集合論でデータを操作する事に特化しているから、
従来のプログラムとかの経験がない人でもそこそこにコード(?)が書けるのがメリット。
個人的にはTrueとFalseとNullの概念がある偉大な言語とは感じるが。
371:デフォルトの名無しさん
09/09/19 15:19:48
速報:グーグルが新言語「Noop」を公開。JavaVMで動作 - Blog on Publickey
URLリンク(www.publickey.jp)
372:デフォルトの名無しさん
09/09/19 15:36:40
今にはじまったことじゃないが、相変らずGoogleのプロダクトはいまいち感かもしだすなあ。
373:デフォルトの名無しさん
09/09/19 16:33:39
>>365
今すぐ自分の役にたつもの作りたいならHSP
時間がかかってもいいから人の役に立つもの作りたいならRuby
374:デフォルトの名無しさん
09/09/19 21:48:24
おまえらそんな糞なものすすめんなw
375:デフォルトの名無しさん
09/09/19 21:52:52
まぁ一生そこから出てこないってんならHSPやRubyもありかもな
でも他の言語もやるかもしれないならその2つは止めとけ
害にしかならん
376:デフォルトの名無しさん
09/09/19 22:01:15
>>362
論理演算はまだ?
377:デフォルトの名無しさん
09/09/19 22:02:05
>>362
bit演算はまだ?
間違えた
アホだorz
378:デフォルトの名無しさん
09/09/19 22:07:03
>>355 >>370
SQLで覆面算を解いてるケースがあるからあなどれんよ
379:デフォルトの名無しさん
09/09/19 22:20:27
Noop
Yeah, perhaps.. I personally find it more readable and I think there is good precedence for it in python
and ruby, but totally understand the other view... As far as xor, nand, etc, if we were to have "and"
and "or" and if we aren't afraid to add keywords, why not? :)
if foo and bar:
if not foo:
On an sort of related note, I always liked being able to give the conditional at the end:
foo = 2 if bar; // Ruby style
foo = 2 if bar else 0; // Python style where else is required, which I find super annoying sometimes
bar = 1 unless foo; // Ruby style unless, though I find if not easier to deal with than unless in my brain
bar = 1 if not foo;
This gets to ternary expressions, which can be more readable this way as well...
foo = 1 if bar else 2;
foo = 2 unless bar else 1; // Probably unnecessary
Otherwise I guess we would use (a ? b : c) ?
380:デフォルトの名無しさん
09/09/19 22:21:52
I like the gabrielh's vote to put the conditional at the end:
foo = 1 if bar;
I'd also like to suggest my favorite looping construct from Pick Basic (yes Basic):
loop {
x = doSomething();
} while (!x) {
doSomethingElse();
}
putting the test in the middle of the loop allows you to dispense with any setup code for the loop
that has to be repeated within the loop -- it all goes before the test and will be executed again
for each iteration.
381:デフォルトの名無しさん
09/09/19 22:23:31
An array is essentially a function that takes a numeric parameter and returns a value.
A Map can also be viewed as a function that takes an object (usually a String) argument
and returns an object. They are essentially parametrized objects. Why can't we unify the syntax?
A template (Generics) takes a parameter and behaves like a function also. Can we then move
toward a syntax similar to the following?
Array(Int) factorial = {1, 1, 2, 6, 24, 120};
Int fourth = factorial(3); // fourth == 6
Object myObj = myMap("myKey");
We can standardize this feature for all classes by using a special method:
class TableRow() {
String get(String name) { /* Return field name as a String */ }
String get(Int i ) { /* Return field i as a String */ }
}
TableRow row = getNextTableRow();
String city = row(5); // city == "Alexandria"
String country = row("Country"); // country == "Egypt"
This is especially useful if we can extend the syntax to set values and not only retrieve them.
The syntax might then look like this:
class TableRow() {
String get(Int i) { /* Return field i as a String */ }
void set(String value, Int key) { /* The first parameter is the new value */ }
}
TableRow row = getNextTableRow();
String city = row(5); // city == "Alexandria"
row(5) = "Ankara"; // row(5) is mutable of course
String town = row(5); // town == "Ankara"
382:デフォルトの名無しさん
09/09/19 23:33:52
>>380
これはPythonに欲しい。
>>381
array[index] と map[key] を関数のようにみせるために
array(index) と map(key) のように書くのか。
そのせいで代入が array(index) = value とか、きもいわ。
383:デフォルトの名無しさん
09/09/19 23:45:22
オブジェクトの参照を返す関数で
hoge(fuga) = hage
っていうのは他の言語でも有な気がする
pythonの
codecs.getreader('utf-8')(file('test.txt')).read()
みたいなのも当初はきもいと思ったけど慣れたらそうでもないし
Javaでも結構こんな書き方しなくね?
384:デフォルトの名無しさん
09/09/19 23:47:02
array(index)は今のPythonでも可能だろうけど(callの挙動を弄るだけ)
array(index) = value はかなり無茶なことになるな
BASICみたく配列の添字が括弧なのか、それ?
385:デフォルトの名無しさん
09/09/19 23:49:53
>>378
kwsk
386:デフォルトの名無しさん
09/09/19 23:50:08
>オブジェクトの参照を返す関数
この辺がキモなのかな
言語仕様によっては無理筋過ぎそうだけど
よくわからん
387:デフォルトの名無しさん
09/09/19 23:57:34
VBでも
hoge.item(n) = x
の場合
itemが配列なのか関数なのか
区別出来ないっていうか意識しなくて良いようになってるのでは
388:デフォルトの名無しさん
09/09/20 00:12:24
そのうちmutableかimutableかが判らなくなる気がする
389:デフォルトの名無しさん
09/09/20 00:24:01
>>383
やっぱ普通に hoge(fuga).Value = hage とかじゃないとキモく感じるわー
390:デフォルトの名無しさん
09/09/20 00:25:34
NoopはGAE/bigtable専用言語なのかと思った
391:デフォルトの名無しさん
09/09/20 00:51:57
Noop専用スレ立ってるからこっちで
スレリンク(tech板)
392:デフォルトの名無しさん
09/09/20 03:24:54
またおまえら新しいものに手出すのか。他にやることがあるだろうw
393:デフォルトの名無しさん
09/09/20 05:40:17
新しい言語がでてきて既存の言語と競争することで、既存の言語も改良されるのだったら歓迎だよな。
新しい言語万歳。
394:デフォルトの名無しさん
09/09/20 09:44:52
プログラマー的発想だな。。作業員の覚える作業内容が増えるだけ。
経営者的にも、今の開発環境は各種技術が乱立してて、設計も人員リソースも
計画がたてづらい。
プログラマーにしてもスキルセットとかキャリアプランをたてづらいし、
転職の際の壁になることが多いし。
なんでも言語できますって奴は、器用貧乏な奴が多いよ。数理処理とかレンダリング
とかネットワークとか専門的なことできなくって、結局WebとかDBとか誰でもできるとこ
やることになる。
395:デフォルトの名無しさん
09/09/20 10:06:14
>>394
しむら、スレタイ!スレタイ!
396:デフォルトの名無しさん
09/09/20 10:11:21
だな。
393みたいに他の言語を迎合してたらバトルロワイヤルになってないな。
けしからん。
397:デフォルトの名無しさん
09/09/20 11:36:25
>>394
ウチの会社のメインは汎用機で金融系なトコなんだけど、そういう考えが強く、
結果オープン系の技術力が他の会社に比べて著しく劣っている。
で、世の流れで営業がオープン系をねじ込んできて、導入したら障害が大量発生。
エンジニアは老害と偽装派遣ばっか。
地獄だよ。
まあ研究職と人身売買業種とは別に考えろよ。
それにここはプログラム板でプログラマーが多いのは当たり前。
398:デフォルトの名無しさん
09/09/20 12:34:30
>>347
俺は真偽と0、nil系は別もの派だからオケー
399:デフォルトの名無しさん
09/09/20 12:48:02
Webは新しいこととか、他より見劣りしないようとか営業的圧力が強いからなあ。
なんとかしようと開発は、流行りのその辺に転がってるOSS使って、
はりぼてにノリを塗りたくってる感じ。
400:デフォルトの名無しさん
09/09/20 19:48:00
問題はその営業が顧客の押しに弱かったりすることだな
Perlで案件取りにいったのに帰ってきたらJavaになってたときは怒鳴り散らした
401:デフォルトの名無しさん
09/09/20 19:51:45
Javaがいいなんて言う顧客なんているんだ
PHPがどうしても嫌だという顧客は多いが
402:デフォルトの名無しさん
09/09/20 19:57:50
ディスプレイタッチパネルでやる予定が、いつの間にか別の小型端末からの入力まで入ってたからな
その頃はJavaやってなかったから、最初の見積もりから3倍ぐらになるかな、といっただけで青ざめてた
403:デフォルトの名無しさん
09/09/20 21:23:23
>とかネットワークとか専門的なことできなくって、結局WebとかDBとか誰でもできるとこ
>やることになる。
Webはドカタな現場が多いとは思うが、案件の規模がでかい(億を越えるケース)
とかだとDB部分は相当なエンジニアでないと参加できないけど。
DBが誰でもって発言が出てくる辺り相当に底辺しか知らん印象があるが。
404:デフォルトの名無しさん
09/09/20 21:29:17
誰でも最低のことは出来るが、最高のことが出来るまでには相応のスキルが必要ってのと
誰でも要件を満せて、天井もすぐ、っていうのとの区別がつかない奴って絶対いるよな。
「ウェブなんて小学生でも出来るんでしょ?」とかほざく頭の悪いおっさんとか。
405:デフォルトの名無しさん
09/09/20 22:19:40
そもそも、全く新しいアルゴリズムの開発なんて仕事はめったにないしな。
五十歩百歩だよ。
406:デフォルトの名無しさん
09/09/20 22:43:18
>>403
前に流体とか応力計算とかやったけど、理系で大卒のそれなりの人じゃないと無理。
DBとかは短大文系でもやらせりゃ1年でできるようになるからね。
407:デフォルトの名無しさん
09/09/20 22:55:25
>>406
>DBとかは短大文系でもやらせりゃ1年でできるようになるからね。
この発言が>>404のほんといい実例だよな
408:デフォルトの名無しさん
09/09/20 23:12:06
※ExcelDBを含む
409:デフォルトの名無しさん
09/09/20 23:21:34
DBを「使ったことある人」と「使いこなせてる人」の差は広すぎる。
410:デフォルトの名無しさん
09/09/20 23:41:47
DB設計のためにはモデルを作り上げる能力が必要だが、
流体にしろ応力計算にしろ、先人の作り上げたモデルを利用できれば十分だからな。
411:デフォルトの名無しさん
09/09/21 00:06:14
>DBとかは短大文系でもやらせりゃ1年でできるようになるからね。
Accessの話でもしているのか?
このニートは。
412:デフォルトの名無しさん
09/09/21 01:20:39
410は406へのカウンターなんだろうと思いつつ
そんなことはないと言ってみる
413:デフォルトの名無しさん
09/09/21 01:43:48
1年はかかり過ぎだろどうみても
414:デフォルトの名無しさん
09/09/21 06:49:41
ExcelとかAccessなら1年で出来なきゃアフォだろうな。
415:デフォルトの名無しさん
09/09/21 09:52:55
DBってもともとデータ処理を簡単に扱えるようにしたアプリだからな。
誰でも使えないとそれはそれでおかしい。
416:デフォルトの名無しさん
09/09/21 11:05:25
ExcelやAccessはマクロ言語を内蔵していて、GUIパーツも使えるわけで、ウェブアプリより応用範囲が広い。
417:デフォルトの名無しさん
09/09/21 12:10:41
サクサク作れるのは良いけど
いまだにソースやオブジェクトの管理が改善されないので大規模化するとカオスになるよ
418:デフォルトの名無しさん
09/09/21 13:52:09
ソース埋め込みだからね
419:デフォルトの名無しさん
09/09/21 13:53:03
どのくらいの規模からカオスになる?
大規模っていうのは人によって全然違うから、いちおう聞いてみる。
420:デフォルトの名無しさん
09/09/21 14:16:03
カオスになるのは規模関係ない。
421:デフォルトの名無しさん
09/09/21 14:38:16
機能が増えて、メンテナンス性を上げようとクエリやら関数を共通化しようとしたあたりからカオスだな
422:デフォルトの名無しさん
09/09/21 15:10:39
自分で作ったフォームと良く似た機能のフォームを
ソースをちょっとだけ変えて2つ目を作るとき
それなりのプロジェクトでは共通部分を親クラスにして
それぞれが継承したりするもんなんだが
Access/Excelでは良く似たフォームを
もう一度最初から作るしかないのか
423:デフォルトの名無しさん
09/09/21 16:14:34
いや、コピペするからそんなことないよ
424:デフォルトの名無しさん
09/09/21 16:27:48
そして後日修正漏れが発生するのですね、わかります。
425:デフォルトの名無しさん
09/09/21 16:50:42
最近はdiffを使いこなしてるから修正漏れはなくなったよ。
diff -rbw
これの意味分かるかい?へへへ
426:デフォルトの名無しさん
09/09/21 17:09:02
-uは付けないの?
427:デフォルトの名無しさん
09/09/21 18:40:59
<>の方が好きだからつけないよ
patchとか使わないし
428:デフォルトの名無しさん
09/09/21 20:55:09
フォームの継承はマジで出来ませんか?
429:デフォルトの名無しさん
09/09/21 21:07:28
Excel VBAとかって使ったことあるけど、バージョン管理ソフトで差分管理できなくて大変だった。
ソースをdiffれねえw
430:デフォルトの名無しさん
09/09/21 21:22:38
俺もDB定義書をSQLにするようなのを書いて使ってるんだが、その辺が不満
コピペで無理矢理SVNに突っ込むって以外に、何か方法はないのかな
431:デフォルトの名無しさん
09/09/21 21:25:56
Flashもソース管理できないから大変。プロジェクトファイルのバイナリ1個しかはかねえし
Flex?だとファイルがバラになるからいいんだけど
432:デフォルトの名無しさん
09/09/21 21:34:03
Office2007でxml形式で保存したらsvn/diffに合いますかね
433:デフォルトの名無しさん
09/09/21 21:35:58
>>431
Flashはソースをテキストからincludeする方法があるからまだましかと
ちょっとめんどいけど
434:デフォルトの名無しさん
09/09/21 21:43:53
>>432
ODFにしてもそうだけど、最終的にはzipでまとめてるから
既存のバージョン管理システムとは相性悪いんじゃないかな
435:デフォルトの名無しさん
09/09/21 22:50:18
>>432 >>434
圧縮されてるんだよな。
しかもデータがでかいとロードが時間掛かりすぎるから、バイナリ形式で保存したりするし。
436:デフォルトの名無しさん
09/09/22 00:51:37
RubyをVisualBasicの代わりとして使えないかなと考えている。
VisualBasicは進化の方向性を致命的に誤ったと思うのだよね。
旧VB6のポジションが空いている。
VB.NETに代替に成りきれていないでしょ?
そこにRubyが入れないかと、そう思った次第。
437:デフォルトの名無しさん
09/09/22 02:13:07
Pythonでもいいや
438:デフォルトの名無しさん
09/09/22 02:33:48
>>436
Rubyはよいのだが、GUI付くんのどうする?オススメライブラリ教えて欲しい。
web系ならRailsでも使ってwebインターフェスにすればいいかもしれんが。
GUIなら、VB.net、というかC#でいいしな・・・
439:デフォルトの名無しさん
09/09/22 02:58:46
>>438
大抵の人の言う「GUI」は「(見慣れたWindowsの)GUI」なんで
とりあえずVisualuRubyじゃない?
440:デフォルトの名無しさん
09/09/22 05:16:14
VisualuRuby昔使ったけど
イベントやらなんやら色々書き足さなきゃいけなくて
結局自分でAPIゴリゴリ読んだ方が速いってことで
VisualuRuby使うのやめちゃったな
WIN32API/WIN32OLEだけで殆ど問題ないし
ところでRubyから.NET呼べたっけ?
441:デフォルトの名無しさん
09/09/22 08:45:24
IronPythonを思い出してあげてください…。
442:デフォルトの名無しさん
09/09/22 10:07:01
VisualuRubyかサンクス、試してみるワー
>>441
俺はIronRubyに期待
443:デフォルトの名無しさん
09/09/22 13:29:04
言語の機能もあるけど、GUIアプリ作るなら、VisualStudioを超えないとな。まあ、C#は凄くいいと思うけど。
444:デフォルトの名無しさん
09/09/22 13:41:35
そうすると最終的にTcl/Tkが候補に挙がってくるわけだ
445:デフォルトの名無しさん
09/09/22 13:43:21
そういえば動的VBというかVBxの話はどうなったんだろね
446:デフォルトの名無しさん
09/09/22 13:54:56
Win/UNIX問わずGUIが充実したスクリプト作ったらそうとううけるね。
447:デフォルトの名無しさん
09/09/22 14:38:49
つPython
実際、海外だとそういう用途に使われてるしな・・・
448:デフォルトの名無しさん
09/09/22 14:38:52
現状で GUI アプリを作りやすい LL は何なの?
449:デフォルトの名無しさん
09/09/22 14:42:48
>>447
いや、やっぱ結局Win32呼ばんとできんこといっぱいあんのよ
450:デフォルトの名無しさん
09/09/22 14:47:45
つTcl
451:デフォルトの名無しさん
09/09/22 15:21:05
>>449
例えばどんな事?
今wxPythonをやってるんで気になる
452:デフォルトの名無しさん
09/09/22 17:14:47
>>451
今Dockableウィンドウとか使ってるけどたぶん無理でしょ。
つかオーナードローもできないのがほとんどじゃない?
あとIEコンポーネントもイベントシンクとか上手く使えなさそう。
まあ膨大なWindowsの機能をすべてラップするってのも無理な
話だと思うから、CとかDllを簡単に呼べるスクリプトがあったら
使いたい。
453:デフォルトの名無しさん
09/09/22 18:03:30
ctypes
454:デフォルトの名無しさん
09/09/22 19:52:45
Pythonは標準ライブラリにctypesがあるのが強いよね。
if sys.platform == 'win32' とかして WinAPI 呼ぶコードを混ぜた
クロスプラットフォームアプリが書ける。
455:デフォルトの名無しさん
09/09/23 02:23:40
wxPython 使いやすいね
GUI を XRCed で作って
ほぼ完全にコード部分と切り離せるのが素敵
456:デフォルトの名無しさん
09/09/23 02:27:58
>>451
URLリンク(kansai2channeler.hp.infoseek.co.jp)
457:デフォルトの名無しさん
09/09/23 09:11:14
>>456
昔VBで書いてたら、結局こんな感じのAPI呼び出しばっかになって
C++で書けばいいじゃんってなったよ。defineとか自分で書くのばからしいし。
458:デフォルトの名無しさん
09/09/23 17:54:31
Python3の普及度はどんなもんかね。
459:デフォルトの名無しさん
09/09/29 00:07:15
この間落としたWindows版はなんか2.5だった
何故だったんだろ
460:デフォルトの名無しさん
09/09/29 20:00:07
Snow Leopard にしたら 2.6.1 だ
461:デフォルトの名無しさん
09/09/30 22:34:19
sed,awkってLLにはいるん?
462:デフォルトの名無しさん
09/10/01 03:28:29
sedはプログラミング言語とは言えず微妙な気がする
awkは初期のLLと言えるんじゃね
463:デフォルトの名無しさん
09/10/01 10:35:37
awkはいまだにワンライナーで使うなあ。
464:デフォルトの名無しさん
09/10/01 10:50:19
俺はハードなCUI使いじゃないので、
ipythonをshellにしてipipeとか使うよ
465:デフォルトの名無しさん
09/10/01 13:06:37
で、LLってなにwに戻ると
466:デフォルトの名無しさん
09/10/06 22:19:28
最近思う。
「やっぱ、perlでいいや」
467:デフォルトの名無しさん
09/10/06 22:59:04
perlはなんか昔は良かったみたいな気分になるなw
468:デフォルトの名無しさん
09/10/06 23:04:08
perlはなんか昔は酷かったみたいな気分になるなw
469:デフォルトの名無しさん
09/10/07 00:11:53
LLでがっつりしたもの書く気しないし、汎用作業はperlでいいや
ガワが必要になったらtcl/tkでいいや