2022年02月12日

おいおい 関数型とか手続き型とかって なんなんだすかあ・・・

そんなの意識したことないから知らんもんね。C/C++, JAVA等は手続き型、HASKEL, F#, Ocaml等は関数型だってさ。しかーーし、ワケワカランのでサイト記事読んで理解しちゃろう君。

https://it-trend.jp/development_tools/article/32-0053
関数型プログラミングとは?
命令をひとまとめにした手続きをつないでプログラミングすることが多く、この場合には手続き型とも呼ばれます。これらと対照的とされるのが宣言型と呼ばれるプログラミング手法で、問題の性質を記述することで答えを出力させます。

関数型プログラミングは宣言型プログラミングの一種です。
----------------------------------------------------------------------
おいおい、今度は宣言型プログラミングって新しい用語(ワタクシにとっては)が出てきたぞ。なによそれぇ・・・・・

>>>
関数型プログラミングの開発言語は以下の2種類に分類されます。

純粋関数型言語

純粋関数型言語とは、すべての処理を純粋関数のみで記述する言語です。HaskellやClean、Miranda、Idrisなどが代表的です。以下略

ただし、どうしても変数を使う必要があるなど、純粋関数のみでコーディングするのが難しいケースも少なくありません。

非純粋関数型言語

非純粋関数言語は、関数型言語でありながら命令型言語の特徴を併せ持つ言語です。OCamlやScala、Scheme、Unlambdaなど、有名な関数型言語の多くは非純粋関数型言語に該当します。

純粋関数型言語と比較し、副作用が生じるリスクは大きくなります。しかし、その分柔軟性が高く、実用性に秀でているのが特徴です。
>>>

   ななな、なんというこっちゃ。F#は非純粋関数言語だってサー。純粋ではないって、まー不潔よ!!    なんちゅーて。

というわけで、なんとなく雰囲気を感ずる。この非純粋関数言語は別の言い方をするとマルチパラダイム言語であるという形容になる。ようするに関数型の要素ありぃの手続き型の要素ありぃの・・って事だろ。

こうなると非純粋であり不潔よ!!  ではあるけれども非純粋関数言語である = マルチパラダイム言語でもある F# を少し おーー勉強しようかなと思った次第である。
これね、インストールした覚えはないのにインストールされていたの(笑) VisualStudio2022Communityをインストールした際についてきたのかね。Microsoft製だからなあ。
本日はF#をVScodeで動かしてみた。Helohelo World出すヤツ。対話モードとビルド実行でもやってみた。おーー勉強する環境は出来とるのである。後はとっとと進めるだけだ。
なお、F#に関しては図書館に本が一冊もないのであった(´・ω・`) なのでMicrosoftサイトの解説探すのである。
F#とRustって似ているね・・・というのも理由が分かったし今日は有意義な一日であった気がする。大雪もなかったし。

それはともかく、どうも体調が良くない。痛風で膝、肘、足の関節が痛いのであるが激痛でもない。加えて腿の内側も少し違和感がある。筋肉痛かね、ここのところ運動不足で。一昨日、5000歩稼いだからかな。まー運動不足は明らかだ。
毎日ラジオ体操するか、6:30に・・・・ 数年前はやったけどな、一ヶ月ぐらい。。。。。
もう少し暖かくなったら近所の小さな公園で柔軟運動はるかに。どうかに。

posted by toinohni at 20:02| 東京 ☀| Comment(0) | ソフト系雑学 | このブログの読者になる | 更新情報をチェックする

ちよっとだけ 覗いてみる  まーやだーーーーー F#

https://atmarkit.itmedia.co.jp/fdotnet/special/introfs_01/introfs_01_01.html

先日F#というコンピュータ言語があると知ったので、それはいったいなんじゃらほいと思ったのでちょっとだけ覗いてみるかなあと思ったので検索したので これだ。

F#は複数のパラダイムをサポートするマルチパラダイム言語だ。F#がサポートするパラダイムには、

  • 手続き型
  • 関数型
  • オブジェクト指向プログラミング

 

  さーワケワカランぞ。パラダイムとはなんぞや?  パラダイスの友達か?  

つーわけだがC/C++は何だ?   手続き型ってヤツだろなあ。関数型ってなんだ?  電卓が得意なのか?   ばーーーか ちがーーーーうよ (笑)

が、言いたいことはそこではない。記事は2012/04/12である。つまり10年ぐらい昔である。では、この10年でF#はどれだけ支持が増えたか、利用者が増えたか、流行ったか、だね。

ワタクシは2008年頃にMicrosoftがVC++ Expressionをタダで提供していると知ってソフトウェアに興味を持ち出したのである。それまではあまり興味なかった。Basic, Cの初歩的な知識はあったですけどね。
当時、C++/CLIという言語が宣伝されてまして。
これはC, C++, C++/CLI と3種の言語が混ざっていてもいいのですぜ、スッゲーだわわわわあああんんんんんん。 と思ってから数年後にMSはC++/CLIでGUIアプリを作るの推奨しませんって(笑)
なので F# に対しても慎重になるワタクシである。この言語は生き残るのか? 

https://anken-hyouban.com/blog/2020/09/19/f-sharp/
よく考えると、F#が人気あろうがなかろうがワタクシはどうでもいいじゃあああんんんんんんんん。 だってプログラム書かない人ですから(笑)
いや、そうではなくて何か今までと違う印象のある言語なんだ。先日はRustという言語があると知って入門サイトの初めの方を読んだけど、これ別にC/C++でいいじゃあん・・・って思った上にやたら新しい考えみたいなのが出てきて閉口して放棄決定した。
なのでF#ってC#でいいじゃあーーーーん・・・・という気もするが。だが、このマルチパラダイスというのが気になる。ちがーーーーーう!!   マルチパラダイムだあぁ・・・

それが斬新であるねWinking smile

  というわけで例題探して10ぐらいは動かしてみるか。ワタクシは敬虔なクリック教徒であるのでVScodeでクリック、クリックするだけなんですけどね。
  単なる覗き趣味ですね。まーやだぁ。。。。 なんちゅーーーーーて。

蛇足 F#で letとか出てた来たぞ。バインドって言葉も出てきたぞ。それってRustでも出てきたぞ。。。。 するってーとどっちかがどっちかを真似ているのか、知らんけど。

あららら、実行に関しては
$dotnet new  以下略
$dotnet run   ってのが出てきたぞ。
これって、Rustでも
>cargo new
>cargo run   ってやるだす。。。。
似てるである!!   そこでネット・グーグラーであるワタクシは探すのであった。。なむう。
https://anken-hyouban.com/blog/2020/09/19/f-sharp/

似ているのは家系が同じだからかあぁ。。。。。。 なんちゅーて。
RustとF#の書き方比較も載っているがワタクシはRust知らないので眺めるだけでした(´・ω・`)
とりあえず例題をいくつか動かして終わりとするか。。。。。

蛇足の蛇足 F#で検索したらギターが出てきたぞバカタレ!!  

つーかね、ワタクシは関数型言語というの、意味わからん。解説は読んだ。だがワケワカラン。そこでF#の例題をいくつか動かしたら、つまりコードを見たら関数型言語と手続き型言語の違いが分かるかも知れない・・・という淡い期待を持つ次第である。
MaximaがLISPで作られていてLISPが関数型言語だと書いてあったサイトを思い出したである。
LISPのコードを昔 眺めた事があるがカッコばかりだったぞ、あれは・・・カッコを使うのが関数型なのか?   ちがーーーーーう!!  と思われ・・・・・(´・ω・`)

まーそのうち意味は分かるようになるであろう。なむう。

posted by toinohni at 12:23| 東京 ☀| Comment(0) | ソフト系雑学 | このブログの読者になる | 更新情報をチェックする

ワタクシはワケワカランのである そーなんだ .Net Core .Net CLI CIL なんじゃあ こりゃあ

そういうわけで用語を知りましょう。
https://www.fenet.jp/dotnet/column/tool/3328/
.NET Coreとは、WebアプリケーションやWindowsのデスクトップアプリを作ることができる、.NETのフレームワークのひとつです。Microsoftが設立した.NET Foundationという団体が、主に開発の促進を行っています。C#、Visual BASIC、F#という3つのプログラミング言語に対応し、クラウド、人工知能、IoT、クライアントUI、機械学習の開発用に提供されています。

---------------------------------------------
うーむ。そうなのか。ってワケワカランのに変わりはないのである(´・ω・`)
知らない言語 F#というのも出てきたぞ。なによそれぇ?

まーなんということでしょう。C++/CLIもC++も対応しないのですか?  そりゃあんまりだあ・・・・ 知らんけど。

https://www.system-exe.co.jp/swarchitecture06/
  なるほどなあ。少しわかりかけたぞ。.Net Framework 4.8で終了かあぁ・・・・

まあプロのソフト屋さんはタイヘンですかも知れないですけどワタクシは関係ないす。プログラムは本やサイトの例題を動かす程度なのでして。
.Net Coreで Hello world !!  ってのまだ試してないけどさ。そのぐらいはやってみっかな。

だいたいクロスプラットとか言ってもLinux上でWindow Formアプリ作るわけでもないし。.Net Coreは対応しないちゅーとるし。

趣味のプログラムで例題をちょいちょいと少し修正するぐらいだからワタクシは無問題!! 
どーーーや!!  

しかし、ここ20年ぐらいの流れを見ると面白いなあ。ようけ変わるもんだわさ。

ところでソフト屋さんって何してるの?   そりゃプログラム作っているんだろなあ。ワタクシは友人・知人にプロのソフト屋がおらへん。以前、COBOLやってたヤツいたけど引退したし。
COBOLってまだ稼働しているらしいな。詳しくは知らないけど。

そんなこと言ったらFortranだって研究者の中には使っているのおるおるおーーるずらしいし。いや、いいのか、それは。自分の研究用であって他人に提供するものではないからなあ。

さーて、ワタクシも細々とC++/CLIでGUIアプリ動かそうっと。OpenCV4をC++/CLIで使うって本があったからさー。真似しようっと。。。。 例題がDL出来るかどうかは知らんのです。

Microsoftはワタクシの中古PC 5台( Win 10) をWin 11にするのは推奨しませんと言いやがった次第である。でもね、Win 11 Proにしたんだよん。簡単でしたね。ISO方式。一つのファイルをrenameするか削除するか、簡単な方法でしたわ。
C++/CLIでGUIアプリ作るの推奨しませんってVisualStudioからテンプレートも消しちまって10年ぐらいになるのか。MSが推奨しなくてもワイは使う(笑) 本の真似するだけなんだけど。
どーーーーや!!        なにが? 

posted by toinohni at 11:20| 東京 ☀| Comment(0) | ソフト系雑学 | このブログの読者になる | 更新情報をチェックする