スレ立てるまでもない質問はここで 118匹目at TECH
スレ立てるまでもない質問はここで 118匹目 - 暇つぶし2ch892:デフォルトの名無しさん
12/05/12 00:31:49.28
>889
娘だか妹だかには、
「『操作可能なプログラムまたはバッチファイルとして認識されていません』でググれ。」
と言え。
やる気があれば、困ったときにはググれば良いことを覚えるだろう。
>889も覚えとけ。

893:デフォルトの名無しさん
12/05/12 00:38:44.45
もし近所なら家庭教師してあげようか


894:デフォルトの名無しさん
12/05/12 00:47:57.52
>>889
javascriptというとテキストエディタでhtmlとjsファイルを作成してブラウザで表示させるのが主流だと思いますが
その過程では>>889様のおっしゃるようなエラーが出ることはありません。
何をしようとしてそのエラーが表示されたのかを詳しく説明していただければ、
もう少し適切な解決策を提案できるかもしれません。

895:デフォルトの名無しさん
12/05/12 08:55:26.90
.jsのファイルを実行しようとしたんだろ。

896:デフォルトの名無しさん
12/05/12 11:36:45.30
jcだろ?

897:デフォルトの名無しさん
12/05/12 12:10:56.45
JCは最高だな!

898:デフォルトの名無しさん
12/05/12 14:32:49.41
>>892
すみません、文章そのままググるという発想がありませんでした、以後気をつけます

>>893
本当に、そういうなんでも教えてくれる方が近くにいらっしゃれば、と思います

>>894
本人にもよくわからないそうですが、多分>>895-896さんの言っている通りじゃないかと
とにかく、javascriptというものをやってみたかったらしいです

899:デフォルトの名無しさん
12/05/12 15:02:40.24
専門学校だと低料金で詳しく教えてくれますよ

900:デフォルトの名無しさん
12/05/12 15:14:23.34
>>898
javaScriptの用途としてはホームページに動きを持たせるのと、win用のスクリプトが大まかな用途な訳だが。。。

娘さんにWSHはあんまり興味引きそうに無いので、"html javascript"でググってホームページ作成させると良いと思います


901:デフォルトの名無しさん
12/05/12 15:28:40.47
この一連の流れを眺めてて
昨日からなんとなくJavaScript始めたけどなかなか面白いじゃん

コンソールのクソ退屈なhello, worldではなく
ブラウザの超強力なレンダリングエンジンを使って
プログラミング入門するというのは普通にありだと思った

902:デフォルトの名無しさん
12/05/12 15:33:09.57
WebGLで作るとwindows(directx)のブラウザでは動かないんですよね?

903:デフォルトの名無しさん
12/05/12 15:33:16.61
PHPのほうがいい。
JSは装備損弱。
言語的には良いかもしれないが。

904:デフォルトの名無しさん
12/05/12 16:22:18.89
>>903
損弱?

905:デフォルトの名無しさん
12/05/12 16:53:25.71
新語wwwwww

906:デフォルトの名無しさん
12/05/12 18:48:39.73
>>879
冗談抜きでVB6.0。
VB6.0手に入らなかったらC#やらせたら?
すぐGUI作れない言語をやらせるのは厳しいだろ。
ある程度なれてからは、C++やJavaやらPHPやらやらせりゃいい。

907:デフォルトの名無しさん
12/05/12 18:50:17.62
>>894
俺はWSHとして使うことがほとんどだがね

908:デフォルトの名無しさん
12/05/12 19:05:28.05
VB6.0はない

909:デフォルトの名無しさん
12/05/12 19:18:28.93
JavaScriptでいいよ。
VB6なんかよりよっぽど良い。

910:デフォルトの名無しさん
12/05/12 19:49:15.63
JavaScriptは入門に向かんよ
デスクトップで使ったらGUI作るの面倒だし
HTML上で使ったらHTMLとごちゃごちゃして混乱招くし
素人にはポトペタ環境が一番モチベーションたもたせられていい

お前ら素人のガキに覚えさせるって事考えてんの?

911:デフォルトの名無しさん
12/05/12 19:52:37.22
じゃQtでいいんじゃないかな

912:デフォルトの名無しさん
12/05/12 20:07:12.30
ポインターが出てくる時点でアウト
高校ぐらいになって本機でソフト開発に
入れ込むぐらいのヤツに覚えさせるんじゃないと話にならん

913:デフォルトの名無しさん
12/05/12 20:23:50.77
初心者にGUIなんぞ作らすな

914:デフォルトの名無しさん
12/05/12 20:26:49.02
もう1冊本買っちゃったんだし、それで進めればいいじゃん。

915:デフォルトの名無しさん
12/05/12 20:34:23.45
>>898です
相変わらず娘はPCと格闘中です
質問したくとも何がどうわからないのかもわからないようです

で、娘は本当はゲームを作りたかったようで、javaScriptはゲームに向いてないようですね
ホームページとかは興味ないようです

とりあえずjavaScriptは一応一通りやってみるそうですが
(この状態でそんなことが出来るのか謎ですが)
次はゲームを作りやすい言語をやりたいそうです
専門学校で学ぶことも検討中です、どうせ部活やってませんし
ご意見ありましたらお願いします

916:デフォルトの名無しさん
12/05/12 20:42:16.08
>>915
専門学校だけは止めろ。
進学校行くか高専いかないと人生潰す

917:デフォルトの名無しさん
12/05/12 20:43:12.53
取り敢えず、こんなのもプログラミングを学ぶ要素だよ。
URLリンク(home.jeita.or.jp)

918:デフォルトの名無しさん
12/05/12 20:45:42.44
>>915
Javascriptやるきがあって、ゲーム作りたいんなら
C#勉強さセナよ。よっぽど近道だわ。
タダで出きるし、あんたも財布の心配しなくて済んで気が楽だろ

919:デフォルトの名無しさん
12/05/12 20:48:10.55
>>915
一ついえることは、英語を学ぶ際にhello とか this is a pen. の意味を調べ、何度も書き取りしたところで
それだけで英詩とか小説が書けるようになったか?無理だろ。
hello と this is a penで何をどうすればいいのかわかるわけがない。
でも入門書にはhello とthis is a penの解説しか載ってないんだよ。

920:デフォルトの名無しさん
12/05/12 20:52:01.44
C++が出来れば一番なんだろうけど、覚えることの多さに絶望するだろうから、
C#あたりで勉強し始めるのが一番だろうな。
適当に書いてもある程度意図通りに動くし、頑張ればゲームも作れるし。

でも、プログラミングで一番面白いのは、ソフトを作るよりもアルゴリズムだと思う俺。

921:デフォルトの名無しさん
12/05/12 20:59:44.89
ゲームというのは、Windows,VisualStudio,MSOfficeなどMicrosoftに多額のお布施をした挙句、C#やDirectXを駆使したブロック崩しを作ることですか?

922:デフォルトの名無しさん
12/05/12 21:00:34.92
>>915
>916と>920に同意。兎に角>917やらせておけ。つーか、あんたもやってみろ。

923:デフォルトの名無しさん
12/05/12 23:22:05.78
>>915です
>>917の問題をやってみました、詰めトルネコみたいですね
娘は技術家庭の時間に似たようなことをやったそうです、
とりあえず初心者問題はすべてクリアできました

専門学校は中学校に通いながら、ということです
近くのスクールを検索して調べたら、小学生も来てるらしいです

ゲームは何を作るかは未定だそうです
とりあえずJavascriptをもうちょっと頑張るそうです

924:デフォルトの名無しさん
12/05/12 23:22:46.43
初心者問題をクリアしたのは娘です、念のため

925:デフォルトの名無しさん
12/05/13 02:49:32.30
俺は今ではC/C++/Java/C#/PHP/Perl/VBあたりは一通り使えてゲームも作れるけど
最初に触った言語はJavascript+HTMLだよ
最初の選択肢としては悪くないと思う


926:デフォルトの名無しさん
12/05/13 18:37:59.43
JavaScriptの書き方がいちいち変化するのが釣り臭いです><

927:デフォルトの名無しさん
12/05/14 01:34:06.55
PHPの質問していい?

strlen()で文字数を取得したくて下のコードを書いたんだけど、
この場合$bytは3になるはずだよな?
なぜか7になってしまって、どうすればいいかわからない

<?php
$string = 'aaa';
$byt = strlen('$string');
     print "$byt";
?>

928:デフォルトの名無しさん
12/05/14 01:38:57.13
なんで7になったのか考えろよ

929:デフォルトの名無しさん
12/05/14 01:41:44.48
7文字あるじゃん

930:デフォルトの名無しさん
12/05/14 01:43:31.88
長さ7の文字列の長さを計ったから7になったんだよ


931:デフォルトの名無しさん
12/05/14 01:44:24.95
aaaだから3バイトじゃないの?

932:デフォルトの名無しさん
12/05/14 01:46:42.95
ここにはアホしかいないからphpスレ探して聞いたほうが早い

933:デフォルトの名無しさん
12/05/14 01:50:51.16
何が間違ってるか察しがつくけど、個人的に驚きなのは
print "$byt";だな。これで$bytじゃなくて7が表示されるのかよ
変数をダブルクオートで括るとかw

934:デフォルトの名無しさん
12/05/14 01:53:18.01
''で囲んでたからか!
くだらない質問して申し訳ない、ありがとう


935:デフォルトの名無しさん
12/05/14 01:56:53.36
>>933
ダブルクォートだと変数展開あり、シングルクォートだとなし、ってのは割とよくある仕様では?

936:デフォルトの名無しさん
12/05/14 01:59:43.97
>>935
どこによくあるの?

937:デフォルトの名無しさん
12/05/14 02:07:42.12
↑アホ

938:デフォルトの名無しさん
12/05/14 02:10:08.55
スレ立てるまでも質問したらアホと言われたwなんだこれ

939:デフォルトの名無しさん
12/05/14 02:10:46.21
アホとしか言えない>>932だろ。本当に語彙が少ないな

940:デフォルトの名無しさん
12/05/14 02:17:21.73
いかにも932らしいな


941:デフォルトの名無しさん
12/05/14 02:20:56.29
>>934
本当にわかったのか?


942:デフォルトの名無しさん
12/05/14 02:24:10.60
>>935
「ダブルクォートでくくられた文字列リテラルの中に変数名があったら問答無用で展開」は決して「割とよくある仕様」ではないぞ

943:デフォルトの名無しさん
12/05/14 02:32:21.41
PHPとPerlしか知らん


944:デフォルトの名無しさん
12/05/14 03:50:20.99
>>923
オーロラクロックって調べたら電子ブロックみたいにプログラムが組める、組み込み系ですね。
蛇足になりますけど、今もし組み込み系やるならArduinoかも。
URLリンク(www.switch-science.com)
初期投資1万円以下で教材とボードが手に入りますよ(ゲームではないのでほんとに蛇足です)

電子ブロックみたいに組み合わせて動く、のが楽しかったとしたら、
上でもあがってましたが、Scratchはぴったりですよ。
URLリンク(www.atmarkit.co.jp)
URLリンク(scratch.mit.edu)
これは知り合いの小学生のお子さんがやってますけど、
どの言語でもよく使う機能がブロックになっていて、それを組み合わせて簡単にゲームが作れます。
手っ取り早く面白いところだけできて、興味がわくけどどこか物足りない、みたいな。
ここから、ブロックの組み合わせじゃなく、キーボードで打ち込んでいくプログラムにステップアップできれば。

JavaScriptやるならCodecademyもどうぞ。簡潔で、英語の勉強にもなる。
URLリンク(www.codecademy.com)
ただJavaScriptはまだWeb向きかも。ゲームが作れない事はないし、今後役に立つ技術だけど。

どう興味が転んでいくかわからないので、
できるだけ何でも検索するようにして、もし娘さん用のパソコンがないなら買ってあげてもいいかもしれません。

945:944
12/05/14 04:01:25.74
>>923
JavaScriptの他に、基本としてCをやっていてもいいかもしれません。
URLリンク(9cguide.appspot.com)
型、変数、配列、ループ、比較、条件分岐、関数のあたりまでひと通り(2、3週間くらい)終わると、
その後様々な言語の入門のところで、1、2章読み飛ばせるようになります。
自信になりますし、入門で「一体これを何に使うんだろう」と疑問に思っていた部分が、
実際にプログラムを作り出すと「こういうことだったんだ」とわかっていく快感が、学習効率にもつながりますよ。
様々な言語の元になっていたり、似通っていたりするので、Cを覚えておいて損はしないと思います。

946:デフォルトの名無しさん
12/05/14 11:34:46.32
ブラウザで文字列指定→右クリック→google検索でgoogle検索出来る機能がありますが
そんな感じで、右クリックしてリンク先をダウンロードサイトの検索で検索したいと思っています
どんな手順で調べていけばいいのか教えて下さい

947:デフォルトの名無しさん
12/05/14 11:41:50.65
>>946
まずそのサイトの検索がGETなのかPOSTなのか調べる
Googleみたいにアドレスがブックマークできる形
&key=a+b+c
みたいになってるやつはGETだからそのままアドレス生成して
開いてやればいいだけ


948:デフォルトの名無しさん
12/05/14 12:10:31.82
>>947
ありがとうございます
調べてみたら案外簡単にできそうで、非常に助かりました

949:デフォルトの名無しさん
12/05/14 12:16:38.57
GUIの総合開発環境てどんなのありませんか?
開発用と実行用のOSはWindowsで、配布が簡単で実行に前提製品が無いのが嬉しいです。

950:デフォルトの名無しさん
12/05/14 12:34:35.56
昔は Delphi が人気あった

951:デフォルトの名無しさん
12/05/14 13:14:44.46
>>950
私もDelphi6 personalを使おうと思ったんですけど、インストールが出来ないんですよね。
インストール番号とインストールキーをどうやって入手できればいいのかわからないです。
ボーランド社にメール申請すればいいとかネットでは書いてるんですけど、そのアドレスが無効になっていたり。


952:デフォルトの名無しさん
12/05/14 13:21:40.90
Delphiは最新版が1万ちょいで買える
それすら払えないなら素直にC#Express使っとけ

953:デフォルトの名無しさん
12/05/14 18:49:21.32
>>923
本当に娘さんのことを考えるなら、HaskellかPrologを勉強させた方がいいと思いますけど。

954:デフォルトの名無しさん
12/05/14 19:17:38.86
>953
思わず笑ってしまったw
何でだw

955:デフォルトの名無しさん
12/05/14 19:56:43.71
PerlのCPANとかRubyのonRailsみたいなものは、全てPerlやRubyだけで書かれてるのですか?
スクリプト言語だと、あまり凝ったことをやろうとするとアセンブラやC言語を書かないといけないのではないか?と思うのですが

956:デフォルトの名無しさん
12/05/14 19:59:40.28
>955
gdライブラリとかImageMagickみたいに
バイナリで提供されてるライブラリを使うこともあるよ。

957:デフォルトの名無しさん
12/05/14 20:01:45.93
>>925
ありがとうございます、近くのスクールの体験にとりあえず行ってみるそうです

>>926
私に言っているのでしょうけど、いちいち打つのが面倒なので、
たいてい前の人の文章からコピペするのでそうなります

>>944
ご丁寧にいろいろ調べて下さってありがとうございます
オーロラクロックはきっかけに過ぎず、「自分はプログラミングに向いているように思う」
と言っているので、もうちょっと本格的にやりたいみたいです
JavaScriptを学びながら、興味の方向性を見つつ、対応していきたいと思ってます
C言語もとても良さそうですね、娘は数学が得意なので、
紹介された箇所もなんとか理解できると思います

>>953
今は何もかも新しい言葉ばかりですが、落ち着いたらいろいろ考慮していきたいです

958:デフォルトの名無しさん
12/05/14 20:03:58.73
全てPerlやRubyだけ
gdライブラリとかImageMagickは元々バイナリ
onRailsと無冠例

959:デフォルトの名無しさん
12/05/14 20:04:22.30
>>953
学があるヤツなら教えんでも覚えるだろ
高専とかプロコンとか優勝するのは関数型が多い
関数型に行くかは自主性に任せときゃいいだろ
本人の判断でセンスがあるかどうかわかる

960:デフォルトの名無しさん
12/05/14 23:04:01.93
高専でもロボコンのプログラミングをするようになると、Cだろうなあ。

961:デフォルトの名無しさん
12/05/14 23:28:32.33
>>956
>>958
ありがとうございました。
するとPythonみたいに言語のほうでメソッド少なめらしい(?)ものは、できることとの幅が小さくならないのですが?

962:デフォルトの名無しさん
12/05/14 23:34:27.68
馬鹿には無理

963:デフォルトの名無しさん
12/05/15 00:21:59.89
だなw

964:デフォルトの名無しさん
12/05/15 01:27:41.07
>>957
自分も関数型言語(主にHaskell)はアルゴリズムの勉強に最適だからお勧めしたいけど、広くは使われてないから、一度何らかの言語で挫折したらで良いと思う

よく使われてる言語を使いこなせてる人は、最初から、抽象的に考えて、それをどうコードに落とすかが分かってるんだと思う
関数型言語は、その抽象的な考えを、ほぼそのままコードに落とせるから、本当の意味で初心者向け

実際によく使われてる言語(手続き型やオブジェクト指向)でも、結局コードを良く見ると同じ事してるって分かるんだけど、if文やfor文でアルゴリズムをそのままではなく、変形させられてるので、アルゴリズムそのものはどう言う構造なのかが見えにくくなる
(この、見えにくい構造を手続き型やオブジェクト指向で、すでに見えてる人には関数型言語は勉強する必要有るのか?と言う疑問もある)


なにはともあれ、娘さんがJavaScriptをもうちょい頑張るといってるなら、JavaScriptで頑張らせれば良いと思う
何か、挫折しそうになった時に、一旦Haskellの勉強を通じて、挫折した処理がどう言う構造の処理なのか理解してもらって、またJavaScriptに戻れば良い


965:デフォルトの名無しさん
12/05/15 01:34:03.85
もっともらしい事言ってるが嘘っぱち
アルゴリズムの本に載ってる疑似コードは必ず手続き型風だから
それで理解すればいいし、むしろ関数型でアルゴリズムを理解する情報は非常に少ないし
そもそもコーティングの段階において理解しやすくない

966:デフォルトの名無しさん
12/05/15 01:39:47.95
変則的な最近の言語をよりも、昔からある C で学べばいいよ。
そうすれば他の言語の長所短所が分かりやすい

967:デフォルトの名無しさん
12/05/15 02:11:27.06
Cはメモリ、ポインタ管理を自前でやるところが勉強でも実用でも最高の特徴だろう、データ構造も実装しやすい
後は高速なくらいで、他と比較すると少機能過ぎてストレスが溜まるだけ
今日日なんでも自前で作るプログラミングは時代遅れ

968:デフォルトの名無しさん
12/05/15 09:32:21.74
>>965 はもっともらしい事言ってるが嘘っぱち。
Knuthが疑似コードを手続き型の権化である機械語(MIXとかMMIXという
そのために設計した仮想機械)で説明しているが、とても理解できたもんじゃないから。

初歩的なアルゴリズムの理解なら、再帰が自然に書ける関数型のほうが良い。情報も多いし。

ロックフリーとかそういう高度な技法になってくると、手続き型が必要になってくるけど、
必要になったら勉強すれば良い。

969:デフォルトの名無しさん
12/05/15 09:43:49.68
手続き型のほうが人間向き。
手続き型だけど関数型のような書き方も使える言語が優れてる。

970:デフォルトの名無しさん
12/05/15 09:43:55.84
>>965
コードが書かれていようがいまいが、関数型言語には問題ありません
どう言う処理をするかが書かれていれば、そのままコードにできますから

実際、私がマージソートを理解したのは、「アルゴリズム」のキホン (イチバンやさしい理工系シリーズ) と言う、手続き的な手順(コードは一切でない)と処理の様子を図で書かれているだけの本を読んで、
Haskellでマージソートを書けましたし

コードが載ってても、コードが何をやってるのか分からず、丸写しとかしてたら、意味がありません
繰り返しますが、最初から現在主流の言語で、コードを自分で書けるだけの抽象的な考え方が出来てる人には必ずしも必要な言語ではないです
そう言う、コード付きのアルゴリズム本を読んでも理解できなかったら、一旦Haskell覚えて再チャレンジをお勧めします


関数型言語の方が本当の意味で初心者向けの言語では有っても、現在主流の言語(手続き型言語)は何かしら必ず覚えないといけない物ですし
主流の言語だけでプログラミング能力が伸びるなら、それに越したことは無いです

971:デフォルトの名無しさん
12/05/15 09:52:39.59
純粋関数型

Haskell - Wikipedia

Haskellは非正格な評価を特徴とする純粋関数型プログラミング言語である。
批判
Haskellは他のプログラミング言語には見られない多くの先進的機能を持っているが、
これらの機能のいくつかは言語を複雑にしすぎており、理解が困難であると批判されてきた。
Haskellの潔癖さとその理論中心の起源に起因する不満がある。


972:デフォルトの名無しさん
12/05/15 10:20:37.82
JavaScript Programming
クラスのないオブジェクト指向
オブジェクト指向にはいろいろな考え方があり、クラスが存在しないオブジェクト指向言語もあります。
これを「プロトタイプベース」といいます。代表的な言語として Self や JavaScript があります。
プロトタイプベースのオブジェクト指向機能はとてもシンプルです。
たとえば JavaScript のオブジェクトは単なるハッシュにすぎず、オブジェクトに関数を格納すればそれがメソッドになります。
JavaScript は関数をオブジェクトとして扱うことができるので、関数型言語のように関数を変数に格納したり、引数として関数を渡すこともできます。
JavaScript はクロージャのような関数型言語の機能とプロトタイプベースのオブジェクト指向機能を備えていて、
これらを組み合わせることで柔軟で高度なプログラミングが可能になっています。
JavaScript はたんなるマクロ言語ではなく、まっとうなプログラミング言語だったのです。
URLリンク(www.geocities.jp)

高階関数
JavaScript はプロトタイプベースのオブジェクト指向言語ですが、関数型言語の機能も備えています。
JavaScript は関数をオブジェクトとして扱うことができるので、関数を変数に代入したり、引数として渡すことができます。
また、値として関数を返すこともできるので、関数を作る関数を定義することも簡単にできます。
関数を引数として受け取る関数を「汎関数 (functional) 」とか「高階関数 (higher order function) 」と呼びます。
JavaScript は高階関数を簡単に定義することができます。
今回はよく使われる高階関数として、マッピング、フィルター、畳み込み (縮約) について説明します。
URLリンク(www.geocities.jp)

973:デフォルトの名無しさん
12/05/15 11:22:11.97
>>969
同意。多少トリッキーにはなるが便利
決して初心者向けではないが、無理なら全部手続き型みたいに書くことも可能だしな

974:デフォルトの名無しさん
12/05/15 12:19:14.70
Prologだって全部手続き型風に書くことはできる。旧き良き時代のモジュラープログラミングの極意として。

975:Prolog工作員
12/05/15 12:27:01.16
>>974
集約は再帰なしでは書けないよ。再帰と手続き型は矛盾しないのかも知れないけど


976:デフォルトの名無しさん
12/05/15 12:35:55.44
>>967
実践はともかく、プログラミングの学習においては、基本的な関数を自作するのは重要だと思う

それはともかく、Haskellと比較用にRubyでlength関数作ろうとしたら配列はeachメソッドで各要素にアクセスできるが、文字列はeachは行単位で、文字単位にはeach_charを使わないといけないのが分かったんだが、それだと配列と文字列で別々にlength関数作らんといかんの?
ダックタイピング出来るのがLLの利点じゃなかったのかと言いたい
(しかも、1.9からは文字列のeachも廃止になるのでeachの構文糖衣であるfor文が文字列で使えない)

以下のコードは配列だと正しい結果を返すが、文字列だと1.8系だと正しくない結果を返し、1.9系だとエラーになる(eachメソッドが無いぞゴラァ!と怒られる)

def mylength (str)
sum = 0
for i in str
sum += 1
end
return sum
end

Ruby詳しくないとは言え、この動作がおかしいのだけは理解できる


977:デフォルトの名無しさん
12/05/15 13:29:26.25
どこもおかしくないが。

978:デフォルトの名無しさん
12/05/15 13:46:31.08
>>977
仕様通りと言う意味ではおかしく無いんだろうが、pythonでもCでもhaskellでもjavaやC#でも、文字列に対するfor文の動作は一文字ずつアクセスする事だ

そもそも文字列にfor文が使用出来ない仕様って時点でおかしい

979:デフォルトの名無しさん
12/05/15 14:03:21.93
>>978
20年くらいCは使っていないので質問させていただきますが、最近のCでは文字列に
対して、特別な動作をするforが存在するのですか?

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

981:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/05/15 14:47:36.52
size使えバカ

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

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

985:デフォルトの名無しさん
12/05/15 15:18:39.49
アルゴのコードが見える人がなんでHaskell覚えんにゃならんの?

986:979
12/05/15 15:33:57.31
>>981
そのC言語版 forと関係ないのではないかな。

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

988:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/05/15 15:48:19.28
>>985
逆、見えない人がHaskell覚えれば見えるようになる


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

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

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

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


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

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

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

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


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

999:デフォルトの名無しさん
12/05/15 16:09:09.29
次スレ建てろよ

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

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


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch