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

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

何をやったら良いのか?迷ってました。

2021-11-03 22:09:18 | Ruby

 上は、ネタ本「C言語によるアルゴリズム入門」の電卓プログラムの前段、トークン解析をRubyに置き換えてみようかと、始めました。良くわからないので、出きれば同じようにやってみようと思ってますが、Rubyに無いenumとかで引っかかってましたが、結論としては、整数値と単語をつないでいるだけだと思い、Hashでも良いかも?或いは、配列の添字でも良いかもと思いました。

 とにかく、分かる範囲で、始めないと、進みませんから。

関数の定義と実行、これで出来たんですかね?

 その他に、図書館からPythonの参考書を2冊借りてますが、手一杯でできないかも?自分は昔買った本を見てますが、図書館のは新しい。「入門者のPython」と「Pythonによるプログラミング入門」、どっちも良いようですが、特に後者は、サンプルが短いが、お互いが関連性を持っている問題が、関数プログラミングを彷彿?とさせます。前者は例題が長いのですが、プログラムの開発のステップを踏んだ感じが良いと思います。自分はAnacondaを入れて、Spyderを使ってやってます。後者はitaとかいうライブラリを使っているためか?Spyderでは駄目で、IDLEを使う必要がありました。

 どちらも中断中です。(笑)


コメント (4)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« π20000桁を計算してみました... | トップ | トークン解析、ネタ本(C言語... »
最新の画像もっと見る

4 コメント

コメント日が  古い順  |   新しい順
cametan_42さん、コメントありがとうございます (isam)
2021-11-06 07:15:33
 最初から難しいことを狙っても、多分、ほぼ確実に、頓挫でしょうから、出来るだけ、簡単なものから、やってみたいですね。
 Gimpは知りませんでした。使うだけ、やってみたいですね。(笑)
 今のとこは、候補はScheme入門ですね。
返信する
GNU 公式 スクリプト言語 (cametan_42)
2021-11-04 14:22:06
> 自分は、定義とか仕様を見て理解する方でなくて、サンプルを見て覚える方なので、特に辛いですね。

Schemeの学習だと、星田さんがやってる

もうひとつのScheme入門:
https://www.shido.info/lisp/idx_scm.html

がオススメです。
ここを終えたらSchemeで一通りの基本的なプログラムが書けるようになるでしょう。

もし、サンプルが欲しいのなら・・・そうだなぁ。
星田さんにも薦めたけど、ポール・グレアムと言うLisperが作ったArcと言うLispのソースコード

Arc:
http://www.arclanguage.org/arc3.2.tar

を読んでみる、とか・・・・・・。

ArcはRacketで書かれたLispで、要するにLispで作られたLispです。
従って、ソースコード自体はRacket/Schemeで書かれていますね。

あとは、GIMPとか知ってます?AdobeのPhotoshopに対抗するように作られたフリーソフトなんですが。

Gimp:
https://www.gimp.org/

これのマクロ言語(Excelに対するVBA)みたいなのがSchemeです。
結果、 Gimp用の便利スクリプトはSchemeで記述されているケースが多いです。

Gimp Help.org:
https://www.gimphelp.org/DL/gimp_scripts-2.10.zip

これには実際Gimpで使えるユーティリティが入っていて、「実際Gimp上で使える」Schemeのコードになっています。

んで、本当の事を言うと、ある意味有名無実化してますが、GNU Linuxの公式スクリプト言語は実はSchemeです。
従って、言わばLinuxのVBS(Visual Basic Script)にあたるスクリプト言語がSchemeなのです。
返信する
cametan_42さん、コメントありがとうございます (isam)
2021-11-04 09:29:57
 SchemeとかLispとかは、すべてがわからないことだらけです。自分は、定義とか仕様を見て理解する方でなくて、サンプルを見て覚える方なので、特に辛いですね。
 
返信する
Racket (cametan_42)
2021-11-03 23:20:48
> 関数の定義と実行、これで出来たんですかね?

それは変数定義、ですね。

実はSchemeでは変数定義も関数定義も同じようにdefineを使います。

;;; 変数定義

(define greeting "hello, hello")

;;; 関数定義

(define greeting (lambda () (display "hello, hello")))

前者は変数greetingに"hello, hello"を束縛してる(関数型言語では「代入」の代わりに「束縛」と表現します)。
後者は変数greetingにラムダ式を束縛してる。
このカタチが「関数定義」です。
ただし、ラムダ式束縛表記は面倒なんで、省略記法として次のように書きます。

(define (greeting) (display "hello, hello"))

あと、言語設定がR5RSになってますね。
狙いが特に無いのなら、"Determine language from source"にした方が良いでしょう。
そうしたらRacketの全機能が使用可能です。

なお、R5RSの仕様書は次からダウンロード可能ではあります。

R5RS:
https://www.unixuser.org/~euske/doc/r5rs-ja/r5rs-ja.pdf
返信する

Ruby」カテゴリの最新記事