ぶっちゃけ始めるのにいい言語て何 part4

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2021/03/13(土) 14:15:45.21ID:a+miF64E
前スレ

ぶっちゃけ始めるのにいい言語て何 part3
https://mevius.5ch.net/test/read.cgi/tech/1599110613/
14前スレでJSを推した者
垢版 |
2021/03/13(土) 18:24:23.42ID:QBlwJKKa
となると後は、
・使いこなせる人が多く、書籍やWeb上のサイトが多い
・文法が簡単でその割に派手なことが出来る
という条件を満たすものとなる
やはりJavaScriptでは

別に他の意見を否定する気は無いんだけど、
「始めるのに向いてる」という点を考えると、CやHaskellは無い気がする
15デフォルトの名無しさん
垢版 |
2021/03/13(土) 19:40:50.90ID:BHUVv8XX
Haskellを制するものが未来を制するので、日本も小学校で教えるべき。
2021/03/13(土) 20:33:24.52ID:0dFTrZIq
JavaScriptは悪く無いけど判断基準がショボくて参考にならない
17デフォルトの名無しさん
垢版 |
2021/03/13(土) 21:50:58.63ID:BHUVv8XX
あえて言おう。
Javascriptは悪である。
2021/03/13(土) 22:30:47.21ID:oQqZnDK5
jsは昔から割りとボロクソに言われてるのに現在のこの繁栄っぷり
対してHaskellは昔から(もう結構古い言語)スゲースゲー言われてるのに未だに仲間内でモナモナ言ってる完全なる閉じコン
19デフォルトの名無しさん
垢版 |
2021/03/13(土) 22:42:23.33ID:BHUVv8XX
無名のお前より、あわしろ氏を信じる。
20デフォルトの名無しさん
垢版 |
2021/03/13(土) 22:51:11.59ID:SdgYEnRg
Haskellは数学好きな学生には「いいおもちゃアルよ」と言う可能性あるけどそのくらいかな
まあそのケースだとオレならScheme進めるかもしれんが
2021/03/13(土) 22:51:14.35ID:6ChX9ica
smalltalk と一緒で、教養として知っておく地位に収まりつつあるな Haskell。

純粋性を求めたものなので、ものっそ面白いから教養としては俺もいつか勉強したい
2021/03/13(土) 22:55:32.21ID:IGe4z4Op
結局目的に寄るだろ
プログラマーとしてとりあえず働いてみたいですって人に関数型みたいなオタク言語紹介してるやつは病気だと思う
23デフォルトの名無しさん
垢版 |
2021/03/14(日) 00:32:04.47ID:BsjTGNRz
pythonはJupyter Notebookが使いやすい
環境構築もAnaconda入れればいいし

JavaScriptやTypeScriptはブラウザで実行結果が確認できるので始めるのに環境構築もいらない

言語覚えるんだったらこれらが向いてると思う

JavaScriptは各ブラウザに組み込まれた共通の実装という点ですぐなくなる言語ではないし、それを簡素かつ堅牢に記述できるTypeScriptも無用にはならんと思う

Pythonはサードパーティの機能が豊富だから、データサイエンスや機械学習を学ぶなら一番の近道
API叩くモジュールが用意してあったりするのもありがたい

コンパイル言語が学びたいならその後でも悪くないかなと
24デフォルトの名無しさん
垢版 |
2021/03/14(日) 00:47:25.76ID:VFwThnn/
こんなプログラミング言語を見つけた。。。

Scratchはいいぞ
s://mevius.5ch.net/test/read.cgi/tech/1606292791/
【マウスだけで】Scratch【プログラミング】その1
s://mevius.5ch.net/test/read.cgi/tech/1312625035/
25デフォルトの名無しさん
垢版 |
2021/03/14(日) 00:55:38.63ID:VFwThnn/
>>13
オンラインで出来る、、、

って、>>24のScratchみたいに開発環境のインストールなしに、インターネット上の開発環境サーバに接続し、PCやスマートフォンのWebブラウザから開発も実行も出来る言語ってことかな
2614
垢版 |
2021/03/14(日) 01:27:30.35ID:H8M4SK/I
>>23
俺も、「初心者に勧める」のに向いてる言語としてはJSとPythonが
ツートップだと思う
ずっとやるわけではないから、Pythonのように日本ではあまり浸透してない言語
でも全く問題ない

もちろん、その後本格的に勉強するべき言語は進みたい職種によって変わってくる
と言わざるを得ない
例えば、スマホアプリの開発をしたいなら、もはやKotlinかSwiftをやらなきゃ
仕方ないのだからその2つのどちらかということになる

このスレでは前者の議論をしているのだと思うが、
後者に関してはもはやほとんど議論の余地はないと個人的には思う
27デフォルトの名無しさん
垢版 |
2021/03/14(日) 02:33:45.67ID:DiyAp4OB
勉強法はどうやったらいいん
テキストなぞればいいのですか
2021/03/14(日) 05:38:58.80ID:IL1Rx7pe
YouTube で有名な、雑食系エンジニア・KENTA は、Ruby を勧めている。
学習環境が整っている

Rails 6 の本だけでも、数冊出てる。
ネットでも、Rails ガイド、Rails Tutorial など

JavaScript は、言語仕様がクソだから、
深入りせずに、Railsで使う範囲だけを勉強した方がよい

サイの表紙の2冊のサイ本があるけど、
こういう本格的な本をやってると、キリがない
29デフォルトの名無しさん
垢版 |
2021/03/14(日) 07:38:32.05ID:tEaHkbQY
>>28
JavaScriptは言語仕様が良い
柔軟性の良さを持ちつつ最適化にも有利なためスクリプト言語の中で最も速い
30デフォルトの名無しさん
垢版 |
2021/03/14(日) 08:30:47.52ID:BsjTGNRz
JSの利点はGoogle Facebook Microsoft等
利点の増大に力を貸す大企業がいることかな
V8 React TypeScript など功績はかなり大きいかと
もともと彼らが扱い続けてきた言語だからね
2021/03/16(火) 01:42:00.28ID:wP2xnW5z
ゲーム作りたい場合ってHSPから始めるべき?
2Dシューティング作りたいです
2021/03/16(火) 03:36:58.40ID:ZppluVpF
unity/C#が情報一番多そう
2Dだとcocos2dxでもいいけどc++はしんどいかと
2021/03/16(火) 17:10:10.54ID:oejuqX5G
HSPなんて覚えても実務では全く使わないから、素直にC#から始めるべき
エクセルVBAでマリオ作ってもいいかな(笑)
2021/03/16(火) 21:10:00.81ID:4EboH5iB
就職するなんて言っていないのに……
仕事なら前提の確認はしようね
2021/03/16(火) 21:17:30.43ID:3q3/HAC9
HSPでいいんじゃない
あとはUnity+C#とか
普通の人は作りたいものがないから何の言語が良いのかすらわからない
2021/03/17(水) 02:06:54.18ID:0a8RAU39
そんな普通の人に、プログラミングの実感を持ってもらうにはどうすればいいか、
という観点からお勧めの言語を提案していくのがこのスレの趣旨
2021/03/17(水) 09:02:27.51ID:+MPLm7kX
実務はともかく後々考えるとC#(とUnity)がいいんじゃないか。
ゲーム作りに飽きたり挫折してもC#なら他で役に立つ。

ゲーム作りってプログラム自体もきついけど
素材用意が自分は割と苦行だったな。
2021/03/17(水) 22:09:13.49ID:W80ESG/m
>>31
Unity(C#)が一番選択肢としては良さそうだけど
webでも2Dなら十分作れるのでHTML5のcanvasに描画する方法もアリかと思う
canvasを扱うライブラリを使うのも良いし、多少行列やら分かるなら
直接canvasを操作しても問題は無いかと思う
ググれば沢山資料もあると思うのでjavascriptの勉強にもなるし悪くは無い選択かと
2021/03/17(水) 22:34:18.42ID:yxHVVu1O
>>38
> webでも2Dなら十分作れるので

まるで3Dは十分作れないみたいな言い方はやめろ
https://www.babylonjs.com/games/
2021/03/17(水) 23:09:55.64ID:W80ESG/m
>>39
2Dで作りたいという質問だったので3Dには触れなかっただけ
特に意図は無い
2021/03/18(木) 16:50:24.44ID:1ehsJGc/
Docker的には3択らしい

Language-specific getting started guides
Learn how to set up your Docker environment and start containerizing your applications.
Choose a language below to get started.
Node.js, Python, Java
2021/03/18(木) 17:30:58.71ID:7Uj1c/fU
DockerはGo製なのに…
43デフォルトの名無しさん
垢版 |
2021/03/18(木) 18:44:55.78ID:9Us3DAdN
>>31
WebGL+JavaScriptがいいよ
44デフォルトの名無しさん
垢版 |
2021/03/18(木) 19:08:42.54ID:1sWV2MVC
あわしろ氏がお勧めするHaskell。
2021/03/18(木) 23:56:02.68ID:Vto6yDfi
推奨NGワード: あわしろ
2021/03/19(金) 14:49:25.34ID:co8RkYsd
O'Reilly Japan Ebook Store Sales Ranking
1位 モノリスからマイクロサービスへ
2位 プログラミングTypeScript
3位 リーダブルコード
4位 Raspberry Piクックブック 第3版
5位 プロダクトマネジメント

Weekly Sales Ranking
丸善丸の内店(集計期間:3/7〜3/13)
1位 ゼロから作るDeep Learning
2位 プロダクトマネジメント
3位 リーダブルコード
4位 行動を変えるデザイン
5位 Pythonチュートリアル 第4版
6位 入門 監視
7位 MySQLトラブルシューティング
8位 説得とヤル気の科学
9位 実践 JUnit
10位 発酵の技法
47デフォルトの名無しさん
垢版 |
2021/03/19(金) 18:37:11.55ID:O+zBVB4e
推奨NGワード: Haskell
48デフォルトの名無しさん
垢版 |
2021/03/19(金) 18:54:27.74ID:bEVjSxG/
あわしろ氏もお勧めするHaskell。
2021/03/19(金) 19:50:35.86ID:2RO5KA42
考え方を学ぶにはHaskelが一番だな
50デフォルトの名無しさん
垢版 |
2021/03/19(金) 22:53:33.65ID:bEVjSxG/
あわしろ氏によると、オブジェクト指向に汚染される前に学ぶべきらしい。
2021/03/19(金) 22:58:04.01ID:UA/QoJ1s
あわしろ氏によると、指名用写真はパネマジだから信用すべきでないらしい。
2021/03/20(土) 05:55:18.35ID:Zo0fjtEq
(韓国女性25%が風俗勤務!?)韓国人に動揺走る「本当に韓国は売春世界一位なのですか?」→予想を超える韓国の反応(ゆっくり解説) - YouTube
2021/03/20(土) 13:03:03.66ID:NeLt2Xzr
本当は簡単なwinアプリ作りたいからc#勉強しようかと思ったけど
難しそうだし、コードの文字数多いし、コンパイルとか面倒くさいからpythonにしようかな
2021/03/20(土) 13:31:59.65ID:zfB5pfEe
>>53
visualstudioがあれば難しいことなんか何も無いよ
コンソールアプリにしても簡単だしwinformsなら割と簡単にGUIアプリを作れるのでまずは無料版のvisualstudio communityを入れてみると良いかと
55デフォルトの名無しさん
垢版 |
2021/03/20(土) 15:09:59.19ID:b4o+GKeK
>>53
Haskellにしなよ。
56デフォルトの名無しさん
垢版 |
2021/03/21(日) 20:55:00.63ID:dkDtGaJr
pythonがとっつきやすいよ
Cにくらべたら
2021/03/21(日) 22:59:30.59ID:1+IQiUnb
以前JS(ES)を推した者です

今JSを勉強しているんですが、やっぱJSは初心者に向いてないと思う…
文法が意外と複雑だし、HTMLをしっかり理解してないと困る場面も多いので

俺が思うに初心者は、JavaかC#をやるべきだと思います
クセが強くてもいいならPythonもあり
2021/03/21(日) 23:46:36.70ID:dyB+r+st
>>57
勉強始めたばかりで自分でもよく分かってないような物を人に勧めるなよ。
ついでに他の言語も勧めてるがどこがいいかちゃんと言えないんだから黙ってなよ。
5957
垢版 |
2021/03/21(日) 23:55:05.17ID:1+IQiUnb
>>58
はい…
2021/03/22(月) 01:26:36.45ID:EOm1PcPo
JS は、めちゃめちゃ複雑。
Ruby からやっていないと無理

Rubyist でも、JSは、浅くしかやらない。
深くやると、キリがない

結局、オライリーの2冊のサイ本、
つまり、JSの変更の歴史を学ぶことになるから

ES3 → ES5 → ES2015
どんどん変わっていく、歴史を追い掛ける事が、非常に難しいから、
結論としては、お茶を濁す

YouTube で有名な、雑食系エンジニア・KENTA 流で言えば、
基本的な8割だけを勉強して、お茶を濁す

残りの2割は、極めて難しい・時間が掛かるので、そこはやらないのが効率的
2021/03/22(月) 02:34:34.64ID:yNhm3yca
Cから始めろ
2021/03/22(月) 02:51:17.80ID:g8se3Ggw
どんどん変わって「昔のコードが今動かない」breaking changeが多いのはRubyのほうだけどな。
JSはDon't break the webの観点から後方互換性の鬼だからそういうことは少ない。
知ってる人も少ないと思うけど昔のRubyでは複数引数を取るメソッドの呼び出しf(a, b)はf a bと書けた。
今の処理系ではエラー。
f a, bと書かないとダメ。
で、バージョンいくつからなのか過去の仕様を調べようにもドキュメントが見当たらないというクソさ。
曰く、「コードがドキュメントだ!」
なお``(バックティック)によるexec記法もなくなるとのこと。
時期は行き当たりバッタリ。
2021/03/22(月) 16:15:19.30ID:sC5mVCYM
たしかにJSは柔軟性があるぶん
難しいかもね。
2021/03/23(火) 19:48:38.23ID:xszHdcl9
How to learn programming リチャード・ストールマン
https://stallman.org/stallman-computing.html

2/3くらいスクロールしたところ
2021/03/24(水) 11:03:37.05ID:l+Yw5bV3
Lisp好きだよな
2021/03/24(水) 11:07:57.97ID:op338Dtn
初心者で家にランドオブリスプあったから打ち込みながら読んだけどすぐわけわからんくなった
2021/03/24(水) 13:44:27.51ID:HKW94SjI
>>64
プログラミングを学ぶ方法

まず、いくつかの言語でのプログラミングに関する教科書を読み、次にLispを含むいくつかのプログラミング言語のマニュアルを読みます。これがあなたにとって自然で直感的な意味をなすのであれば、それはあなたの精神がプログラミングにうまく適応していることを示しています。

直感的に理解できない場合は、プログラミング以外のことを行うことをお勧めします。あなたは苦労してある程度プログラミングをすることができるかもしれません、しかしそれが苦労を見つけたならあなたはそれがあまり得意ではないでしょう。それが魅力ではなく闘争である場合、プログラミングのポイントは何ですか?

その後、実際のプログラム(またはその一部)のソースコードを読んで、それらが何をするのかを理解する必要があります。次に、修正する特定のバグを見つけることができる場合は、それらに変更を書き込んだり、機能を追加したり、バグを修正したりします。それらのプログラムのコードに精通している何人かの優秀なプログラマーに、あなたの変更を読んで批評するように頼んでください。

人々が開発している無料のプログラムのバグを修正すると、開発者は喜んで修正を入手し、インストールしやすくするためにそれらを作成する方法を教えてくれます。実装したい機能については、TODOリストをご覧ください。開発者があなたの変更を組み込むとき、それは大きな満足であることがわかります。

これを何度も繰り返すと、ソフトウェアの開発が上手になります。
2021/03/24(水) 18:44:38.81ID:9yOmUtmf
Land of Lispで初めてLispに触れてしばらく???だったけど
マクロ/特殊形式と関数は評価順が違うことを理解したらあとはすんなりだったな
2021/03/24(水) 22:08:15.67ID:GfpKlAV7
Emacs Lispなら、Emacsのポータブルタイプのをダウンロードして展開するだけで
完璧な環境構築が出来る
ドキュメントも長く読まれてるものがネットに転がってる
何よりEmacsはLispをやるためのものではなくて、多目的な環境だし
ユーザも多いから作ったものを公開すれば誰かに試してもらえる
2021/03/24(水) 22:12:47.13ID:GfpKlAV7
Programming in Emacs Lisp(和訳)
https://www.math.s.chiba-u.ac.jp/~matsu/lisp/emacs-lisp-intro-jp.html#SEC_Top
2021/03/25(木) 13:26:52.44ID:zrKz1Lho
推奨NGワード: あわしろ
推奨NGワード: デル男
推奨NGワード: KENTA
推奨NGワード: ケンタ
推奨NGワード: Ruby
推奨NGワード: Rails
2021/03/25(木) 19:47:01.48ID:Kuef+GVX
LISPは勧めない。優れた言語だけど。オーパーツとすら言いたいくらい
すごいけど。


可読性の概念がなさすぎなんだよあれ。「括弧の輝度とか色を勝手に
調整してくれるエディタがあればね〜」って言われてたのが90年代だ。
2021/03/25(木) 20:07:19.79ID:KmpgWBAt
そんなんとっくに実現してるし
なんなら箱に入れてくれるデモも見た
2021/03/25(木) 23:26:32.40ID:Kuef+GVX
いや、それが実現してるのは知ってるけど、
それでも読みやすいか?あれ

Emacs の設定とか見てると頭くらくらしてくる
2021/03/25(木) 23:39:44.21ID:KmpgWBAt
そんなもん
f3(f2(f1(42)))

(f3 (f2 (f1 42)))
になってるだけだろ
こんなしょうもないこと取り上げて可読性云々してるの?
だったらforthは
42 f1 f2 f3
だけどこれをもってforthが可読性の高い優れた言語ということになるわけ?
下らないよ
76デフォルトの名無しさん
垢版 |
2021/03/26(金) 19:10:40.92ID:82X73Jff
lispってなんか憧れる
77デフォルトの名無しさん
垢版 |
2021/03/26(金) 19:48:51.68ID:Pu99tHkh
・業務用アプリケーションで未だに主流の、、、、、、Java
・ゲームやデスクトップ用アプリケーションで主流の、、、、、、C#
・過去の業務用アプリケーション資産の保守で必要とされる、、、、、、VisualBasic6.0、VB.NET
・組み込み機器で使われる、、、、、、C/C++

個人的趣味なのか、これら仕事として需要が大きそうなプログラミング言語は、なぜかオススメされないんだね。
2021/03/26(金) 20:48:24.80ID:dnMLEYx4
はじめるのに、って考えるとどうなのって思う
79デフォルトの名無しさん
垢版 |
2021/03/26(金) 21:11:57.31ID:Pu99tHkh
当面は仕事や就職などで必要にはならず学習期間に余裕があるのか、
現在の職場や就職などで必要な技能のため学習期間に余裕はなく仕事で使えることも優先したいのか、
小学生〜大学生が余裕を持って理想的な手順で学習して身につけたいのか、
本人の置かれた環境によっても大きく変わってくるのでは。
80デフォルトの名無しさん
垢版 |
2021/03/26(金) 21:29:05.19ID:3gUI29td
あわしろ氏の勧めに従ってみるのも一つの道では?

日本のIT界を作った人だから。
81デフォルトの名無しさん
垢版 |
2021/03/26(金) 21:29:36.86ID:3gUI29td
鵜飼弾とかも、あわしろ一門の門下生だよ。
2021/03/26(金) 22:31:50.80ID:82X73Jff
小飼でしょ
83デフォルトの名無しさん
垢版 |
2021/03/26(金) 22:37:06.66ID:3gUI29td
合成人間作ってもうた。
84デフォルトの名無しさん
垢版 |
2021/03/26(金) 22:38:55.72ID:3gUI29td
もしかしてこれがポリモーフィズムってやつか?
85デフォルトの名無しさん
垢版 |
2021/03/27(土) 00:02:43.62ID:gNdWovH1
LISP を勉強しておきたいのは、別の理由からです――それをモノにしたときにすばらしい悟り体験が得られるのです。
この体験は、その後の人生でよりよいプログラマーとなる手助けとなるはずです。
たとえ、実際には LISP そのものをあまり使わなくても。
(LISP の初体験をかなり簡単に得るには、Emacs テキストエディタのモードを書いたり改変したり、
あるいは GIMP の Script-Fu プラグインをいじったりしてみましょう。)
 実は、この 5 つすべて(Python, Java, C/C++, Perl, LISP)を勉強しておくのがいちばんいいのです。
これらはもっとも重要なハッキング用言語だというだけでなく、それぞれプログラミングに対して
まったく違ったアプローチをしているので、どれも非常に有益な勉強となるでしょう。
https://cruel.org/freeware/hacker.html
2021/03/27(土) 06:13:58.67ID:VWBmNoc0
>>85
かっこいい、やっぱ憧れる…
2021/03/27(土) 14:49:22.93ID:cpUHfD3R
LispやりたいならClojureやるといいよ
他に比べると敷板低いので
2021/03/27(土) 15:39:13.09ID:iAa+X6Ug
敷居をどうやればそういう間違いするんだろうか
2021/03/27(土) 17:18:30.57ID:ylVvcLaL
Elixir では、関数の第1引数に、パイプから渡せる

42
|> f1
|> f2
|> f3
2021/03/27(土) 22:02:55.39ID:5+AX5NEd
ルビキチ改めエリキチ
2021/03/27(土) 22:19:17.21ID:qBcxOjkl
Elixirのパイプは第1引数に挿入するってのが変な仕様だよなぁ。
関数の部分適用ってないんだっけ?
2021/03/27(土) 23:05:24.63ID:r6p9e+p/
>>91
変な仕様だとは全く思わないけど何が変だと思うの??
2021/03/27(土) 23:21:22.41ID:qBcxOjkl
パイプ演算子の元ネタのF#やその他の関数型言語の類似の構文だとここに第一級オブジェクトとしての
関数を渡すんだけど、Elixirだと値じゃなくてUFCSみたいな変な構文を記述することになる。
2021/03/27(土) 23:51:20.03ID:2ZTLWQQM
>>93
うーむ 何が言いたいのかよく分からん

UFCSは型にメソッドを生やさなくてもメソッドチェーンできるようになる程度のメリットしかなくパイプ演算子とは意図が異なる

F#は状態を含む型を一番後ろの引数で渡す規約でAPI設計してるから高階関数をパイプ演算子でつなぐと第一引数は関数になる
Elixirは第一引数で状態を含む型を渡す形でAPI設計してるので順番が変わるのは当然
2021/03/27(土) 23:58:42.14ID:qBcxOjkl
f(a, b) みたいな2引数の関数をパイプで使いたい場合な。
普通の関数型言語だと f(a) という部分適用された関数を渡すけど
Elixirは f(b) というなんだかよくわからないものを渡す。
96デフォルトの名無しさん
垢版 |
2021/03/28(日) 00:37:58.65ID:w6XGrPa9
小学生向け入門書の存在につられて、試しにC言語に取り組んでみてるんだけど、予定どおりというか噂どおり難関とされる配列、ポインタで、さっそく挫折した。(同じく難関とされる構造体は、その入門書ではまだ出て来てない)
配列は1次元でも複雑怪奇なのに二次元配列なんて出て来て即アウト。ポインタにいたっては最初から何もかもチンプンカンプンな有り様。
プログラミング言語ほぼ初心者で、どの言語がいいか5〜6言語、とりあえず入門〜初級レベルあたりの学習を、それぞれ試してみるつもりなんだけど、とりあえずC言語の学習を初めちゃったし学習書も買っちゃったから、わからないところは考えても時間のムダだろうから、ここはアッサリ飛ばすことにして、とにかく先へ先へと突き進む方法で学習を続けてみるつもり。

以上、いちおう複数言語のお試し学習法を実践し始めての、経過報告。良い子はこの学習法をマネしないほうがいいと思います。
2021/03/28(日) 00:52:46.40ID:Ah6uwjvI
>>95
data-firstとdata-lastはそれぞれ良し悪しあるから
伝統的な関数型言語にdata-lastが多いという一面だけしか見てないと損するぞ
2021/03/28(日) 01:02:39.14ID:A0lj2cxG
>>96
ポインタが理解できないのは最初は仕方ない
コンピュータの仕組みをまずは理解しないとね
2021/03/28(日) 01:09:36.03ID:A+i84gxc
>>97
Clojureはどっちにも対応できるようにそれぞれマクロが用意されてる
Lisp最強
100デフォルトの名無しさん
垢版 |
2021/03/28(日) 02:47:52.21ID:w6XGrPa9
>>98
過去にPCを自作したことがある程度じゃ、ぜんぜん歯が立たないんだね、C言語は。PC組立やOSセットアップなんて、プラモデルよりはるかに簡単らしいしね。
いずれPCの仕組み、概略についての本でも読んでみますね、プログラミング言語の理解の助けにするために。
101デフォルトの名無しさん
垢版 |
2021/03/28(日) 07:59:11.93ID:8EbBoM3p
再帰とポインタの重要性

Javaスクールの危険 - The Joel on Software Translation Project
https://web.archive.org/web/20190506042839/http://local.joelonsoftware.com/wiki/Javaスクールの危険
2021/03/28(日) 09:09:08.12ID:by6LSv0L
>>97
data-firstとdata-lastってそれ自身には優劣はなくて、他の構文と組み合わせる場合に
どちらが便利かという話じゃないかね。
で多くの関数型言語はカリー化などがあるからdata-lastが便利という順序であって
data-firstとdata-lastのどちらが良いかという議論が先にあるわけじゃないと思うが。

>>99
Clojureについては知らなかった。
本来の構文ではなくてマクロで実現しているのは仕方のないところだけど、これは
data-lastになっていない既存の関数のための救済措置という印象。
103デフォルトの名無しさん
垢版 |
2021/03/28(日) 10:05:57.80ID:8EbBoM3p
Elixir知らないけど
f(a)←aを部分適用した
f(b)←aを適用して、bを待ってる
こゆこと?(あるいは逆?)
2021/03/28(日) 10:40:40.27ID:by6LSv0L
f(a) は f(a, b) に a を部分適用したもので、パイプから渡された b を適用することで f(a, b) の結果を得られる関数。
f(b) はパイプから a が渡されると f(a, b) の結果を得られる何か。
2021/03/28(日) 11:27:41.06ID:8EbBoM3p
それだったら全然違和感ないけどな
数学と同じだよね
2021/03/28(日) 12:34:20.69ID:ptSax1Ky
f(a, b)で考えるからf(b)渡すのは変だと感じるんでしょ

パイプで使う関数はf(s, a)やg(s, a, b) なので
s |> f(a) |> g(a, b) になる
引数の捉え方が違う

F#ならf(a, s)やg(a, b, s)だから
s |> f a |> g a b になる
2021/03/28(日) 12:41:52.83ID:ptSax1Ky
f(s, a) -> s やg(s, a, b) -> s って書いたら分かりやすいかな?
2021/03/28(日) 12:48:00.98ID:by6LSv0L
>>106
後者の f a は関数になるけど前者の f(a) はそれだけを取り出した場合に関数でもなんでもないのが違和感あるところ。
あえて言えば s.f(a).g(a, b) というUFCSの一部分かなあと。
2021/03/28(日) 13:15:25.50ID:IES6ITrg
ポインタそんなに難しいかなあ?
メモリを直接扱うイメージで図解しているサイトが
どっかにあると思うが
2021/03/28(日) 13:48:00.04ID:NjmNZXxg
>>96
NHK Eテレなどに出てる、Ruby の女神・池澤あやかが言ってる

彼女は慶応卒だけど、学生がプログラミングを嫌いになるのは、
学校で、C から教えるので皆挫折する

だから、この教育方法が悪いって

彼女は、山陰地方のRuby on Rails 合宿で、Railsを学んで、
ウェブサイトを作り始めた
2021/03/28(日) 13:56:14.24ID:A0lj2cxG
>>110
Rubyガイジは書き込むなよカス
2021/03/28(日) 15:05:46.29ID:IW8C5n0X
>>102
Clojureは関数を定義するdefnみたいなコアな機能もマクロ
マクロなので扱いが格下ということはないよ

>>108
カリー化や部分適用の第一義的な目的は関数合成のためにあるわけで
それらを使わずに簡単に関数合成できるのならカリー化や部分適用してるかどうかはそれほど重要じゃない
113デフォルトの名無しさん
垢版 |
2021/03/28(日) 16:28:16.03ID:yHCir1no
Haskellを学ぶのが良いよ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況