[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/17 03:52 / Filesize : 251 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

スレ立てるまでもない質問はここで 118匹目



1 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 22:33:46.84 ]
質問する前にGoogleで検索しましょう。www.google.co.jp

プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
Javascript は Web 制作板、CGI は Web プログラミング板へ。
業界談義、愚痴はプログラマ板へどうぞ。
ゲーム関係の話題はゲーム製作板へどうぞ。
ネタ、板とは関係の無い話題はご遠慮ください。

前スレ
スレ立てるまでもない質問はここで 117匹目
toro.2ch.net/test/read.cgi/tech/1328439334/

980 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 14:06:47.26 ]
そもそもC言語に文字列型なんてないからな。charの配列はあるが。

981 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 14:28:26.83 ]
>>979
無いよ
ただ文字列(CとHaskellでは文字の配列だったりリストだったりするだけ)を各要素ごとにアクセスする=一文字ずつアクセスするって考え方はRubyを除いてどの言語も同じってだけ

Ruby1.8だと>>976のコードに"Hello\nWorld!!"を与えると2が返る
Ruby1.9だとエラーになる

他の言語だと、ちゃんと13が返る

C言語版
int my_strlen(char str[])
{
int i = 0;
for( i = 0; str[i] != '\0'; i++ )
;
return i;
}

python版
def mylength (str):
sum = 0
for i in str:
sum += 1
return sum

haskell版
mylength [] = 0
mylength (x:xs) = 1 + mylength xs




982 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 14:47:36.52 ]
size使えバカ

983 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 14:50:16.21 ]
>>978
BASICも文字単位のアクセスや長さの取得に関数を必須とするが…
文字列を文字の集合と考える言語か否か、の差じゃね?
Rubyはそう考えず、文字列とはテキストであると考えて来たから
テキストに対するeachは行単位だったのだろう

984 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 14:53:04.71 ]
ダックタイピングができると、なんでString#eachがcharAt()的な動作をしないといけないのかがわからん

985 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 15:18:39.49 ]
アルゴのコードが見える人がなんでHaskell覚えんにゃならんの?

986 名前:979 mailto:sage [2012/05/15(火) 15:33:57.31 ]
>>981
そのC言語版 forと関係ないのではないかな。

987 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 15:38:38.95 ]
>>976
言語仕様や使用用途や設計目的(ゴール)は、HaskellとRubyで比較で出来るほど似てるんですか?

988 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 15:47:47.20 ]
>>983-984

個人的にはeach_lineがあるのだから、eachがforの構文糖衣と言う事を考えると、やはりeach_charの別名としてeachは定義する方が自然だと思う

なにより問題はforがeachの構文糖衣であるが故に、文字列のeachが1.9で廃止になったせいでforが文字列で使えなくなった事
文字列のeach廃止にするなら、その辺考えとけよ。と

Ruby(まともに動かなかった)のコードをPythonでほとんどそのまんま書いたら、普通に動いてるし・・・
(というか、文字列を文字の集合と見る言語の方が上で具体的に言語名上げた通り、多数派だ)

Rubyで配列も文字列も統一的に扱える関数って、Pythonよりも作りにくいんじゃなかろうか





989 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 15:48:19.28 ]
>>985
逆、見えない人がHaskell覚えれば見えるようになる


990 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 15:53:35.08 ]
>>988
そもそもString#eachはString#each_charとは別物だし、「僕が考える自然」なんかどうでもいいし

991 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 15:56:30.67 ]
Haskellは言語仕様も機能も先進的で興味あるんすが、いかんせん日常的に使うところがないので覚えても使い道がくすぐ忘れてしまいます。
Ruby,Java,JSなど普通に使える人にとって、Haskellが有用な使い道は現在ではどういうのがあるのでしょうか?(あるならちょっと触ってみようと思います)

992 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 15:59:31.48 ]
文法はどうでもいい。
Haskellでさえ、元はC/C++のソースなんだろ。
C/C++が出来ればゼロからHaskellが作れる。
速度を気にしなければ逆も成り立つが。

993 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 16:00:10.14 ]
>>987
どっちも汎用言語なので、まあ、同じゴールは目指してるといえる
今回の件で、少なくとも、Rubyは学習用途じゃ向かないのは分かった


994 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 16:02:03.63 ]
>>991
その言語を愛して、すべての事に使ってみる以外に、ないのではないかな。
どの言語でも同じでしょう。

995 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 16:04:29.23 ]
キラーアプリがないから使うタイミングなんて無い
普段使いなら単純に好き嫌いの問題であり
最近のLLは関数型的にも書けるから、殊更に純粋な関数型を好むのはちょっと変わった人間が多い
あるいは変わった人間になりたい中二病が好む

996 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 16:05:38.58 ]
>>988
Rubyじゃなくてそも元になったPerlに言えよ…
Perlの文字列は配列ではないぞ

997 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 16:05:52.99 ]
楽して生産性が高かったら良い。
C/C++やC#やPHPやPerlあたりは装備が色々とあって、
どれだけ文法に優れていようとも生産性で抜く事は難しいだろ。


998 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 16:06:16.01 ]
>>993
つまり文字列を文字の集合として扱わないBASICは、教育用途に向かないと?



999 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 16:09:09.29 ]
次スレ建てろよ

1000 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 16:17:45.77 ]
>>993
汎用言語なら汎用性高いはずですが、Haskellは何に向いてるんですか?

1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<251KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef