新しいアカウントで始めました。

身の回りの出来事や写真が中心です。

Rubyで手こずってました。map

2021-09-12 16:12:46 | Python

 KotlinとScalaは結構似ているので、同じ感じで作れることも多いのですが、(素人考え)ではPythonはというと、Rubyとも違うし、分かりません。暫くRubyに触れていないので、どうやったら確認できるか忘れてます。Eclipse Ultimateにたどり着いてんですが、解凍できません。やはり困ったときは、検索ですね。結論としては、ダウンロードファイルの名前を短くする、解凍を7ZIPを使うでした。原因がわからなくて、ADSLの環境で時間のかかるダウンロードを何回かしました。でも、原因は先のとおりです。

 VS Codeにも入れてみましたが、入力ができないし、デバッグも出来ません。RubyはEclipseが良いようです。ScalaとKotlinはintelliJIDEAが良いようです。Pythonも良いようです。PycharmもPythonも良いようです。相性と言いますか?

Pythonはオブジェクトタイプの書き方でないと思いますが、どうなんでしょうか?

 Rubyの書き方のほうが、オブジェクトらしく思えます。本来ならputs nanntoka出なく、nannntoka.putsとも言える気がします。KotlinとScalaは変数でもval、varと変更不可能と変更可能を分けてますが、Rubyには見当たらない(原信一郎著「Rubyプログラミング入門第一版」かなり古いです)昔は、変更可能が普通でした、と思います。その後いくらか経ってC++でconstが出てきたくらいのような気がします。

 Rubyに寄り道してました。Cygwin64Terminalでも確認してましたが、IDEをどうするのか?REPLはどうするのか?不明でした。X WindowsではPythonなどはありましたが、Rubyはありませんでしたし、使い方がイマイチ不明。使っている人が少ないんでしょう。探しても出てきません。


コメント (3)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« C言語で高階関数と言うかどう... | トップ | Pythonの教科書、例で悩んで... »
最新の画像もっと見る

3 コメント

コメント日が  古い順  |   新しい順
オブジェクトタイプとは? (cametan_42)
2021-09-13 02:21:01
> VS Codeにも入れてみましたが、入力ができないし、デバッグも出来ません。

どうなんでしょうねぇ。
VS CodeとRubyについては

VSCodeで最低限のRuby環境構築、2021年版-設定編:
https://impsbl.hatenablog.jp/entry/RubyInVSCode2021-1

が詳しいかも。情報も新しいし。

> Pythonはオブジェクトタイプの書き方でないと思いますが、どうなんでしょうか?

意味がイマイチ分からんですね。
オブジェクト指向の事?
前にも書きましたが、そもそもプログラミング言語で「オブジェクト」と言う事自体が意味がハッキリ定義されてるわけじゃないので、「オブジェクトタイプ」って言われても良く分からんです。
一応、Pythonはオブジェクト指向言語です。Rubyもオブジェクト指向言語です。
ただし、どっちがよりオブジェクト指向なのか、と言うとRubyですね。
Pythonは元々オブジェクト指向としては設計されてなく、Pythonのオブジェクト指向は基本「後付」です。だからクラスの実装は辞書型を利用して設計されている模様です。
一方、Rubyは最初っからオブジェクト指向を意図して設計されてるので、Pythonに比べると一貫しています。

> KotlinとScalaは変数でもval、varと変更不可能と変更可能を分けてますが、Rubyには見当たらない(原信一郎著「Rubyプログラミング入門第一版」かなり古いです)

あー、なるほど。良く分からんかったけど、KotlinとScalaは変数宣言時にvalとvarで型を分けて、ミュータブルとイミュータブルの変数として宣言するんですか。
面白い。
ただ、通常はデータ型自体がどっちか、と言うのは変数宣言で決定せず、データ型の方の特性ですね。
Rubyのミュータブル/イミュータブルのトピックに関しては以下を参照の事。

ミュータブルとイミュータブルとは?Rubyプログラミングの注意点:
https://tomoyuki65.com/what-is-mutable-and-immutable-in-ruby/

Pythonだと殆どミュータブルで、唯一イミュータブルとして有名なのはタプルぐらいじゃないでしょうか。

> IDEをどうするのか?

正直言うと、RubyだとEmacsユーザーが結構多いカンジだとは思います。作者のMatz氏もEmacsユーザーですしね。
あとは、vimとか、古典的なテキストエディタを使ってる人を見かけました。

RubyのIDEだと、若干古いですが、RDEと言うIDEが過去は有名だったかな?

Ruby開発環境 RDE(Ruby Development Environment):
https://pentan.info/ruby/rde.html

Windowsで今でも走るようなら試してみたら良いでしょう。

> REPLはどうするのか?不明でした。

この辺、Python慣れしてるとちょっと戸惑うかも。
Rubyってのはインタプリタなんですが、動作的にはコンパイラっぽく見えるんですよ。テキストを一気に読み込み実行する。
だからPythonみたいにトライアンドエラーがちとやりづらい。
実はPythonみたいなREPLはRubyでは独立していて、それはirbと言うコマンドで実行されます。

irb
irb(main):001:0>

ちょっとこの辺がRubyの特徴ですかね。
返信する
オブジェクト指向とは? (cametan_42)
2021-09-13 02:38:20
もう一つ。
オブジェクト指向も実の事を言うと「何をもってオブジェクト指向とするか」の合意はありません。要するに実はこれも突き詰めると定義がハッキリしてないのです。
実際は、C++やJavaがオブジェクト指向を広めたんで、それはそれで「殆どの人が納得するオブジェクト指向ではある」んですが、唯一の形式とも限りません。
従って、

> 本来ならputs nanntoka出なく、nannntoka.putsとも言える気がします。

これは違います。そう思い込まない方が良いです。
例えば最初にオブジェクト指向と言う概念を広めたSmalltalkなんかはこの形式に則ってませんし、見た目かなりビックリする言語になっています。
また、「オブジェクト指向だとクラスにメソッドが属する」と考えてる人も多いですが、全然違って、クラスにメソッドが属さないオブジェクト指向もこの世には存在します。
要するに、やっぱり「何をもってオブジェクト指向とするか」は厳密には定義されてないんで、あまり「こういう形式だ」と思い込まない方が得策です。
返信する
cametan_42さん、コメントありがとうございます (isam)
2021-09-14 06:46:22
毎回、内容の深いコメントありがとうございます。
 実はクジラ飛行机さんのPythonの教科書で、つまずいていました。コメントの返事も出せないほど、落ち込んでました。それを書き込みたいと今思ってます。
返信する

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

Python」カテゴリの最新記事