はてなキーワード: 関数とは
この前、職場の事務職(月23.7万円)の面接に無職のおっさん(48)が来たんだが
そのおっさんが「パソコン得意です。Excelできます」ってドヤ顔で言ったんだよね
そこで俺は「パワーBIやVBA、Pythonできる?」って聞いたら
おっさんが「できません…」って言い出して呆れた😅
ExcelなんてそれこそパワークエリやVBa、Pythonできてなんぼなのに
じゃあ何ができるんですか?って聞いたら関数とか…って言い出してドン引きしたわ
そんなん教えたら誰でもできるもんやん
パソコンのテスト一応やらしたけど、関数にT.Test関数の2番を使ってて実務経験ないの丸わかりで
これはないなあって思って落としたわ
現代のAIはモデルって呼ばれてる奴は重みが調整された巨大なデータ構造です。
データ構造は多分ニューラルネット的なやつが一般的なのでは。知らんけど。あ、私素人ですので、あまり真面目に聞かないでください。
そんでこのモデルは入力に応じて出力が変わります。LLMなら猫っていれたら、猫について語りだして猫この特徴や可愛らしさや、猫にまつわる人間の感情についての文章が出力されるだろうし、画像生成なら猫の画像が出てきます。
モデルは多くの場合関数として振る舞うので、出力方向からこの出力結果を入力すると(お尻にバイブを刺すのと一緒です。)元の入力データが復元できます。猫にまつわる説明文を後ろから入力したら「猫」って言葉が出るし、猫の画像を後ろから入力したら「猫」って言葉が取り出せます。
画像認識AIがやっていたことが全く同じことで、画像認識AIと画像生成AIは裏表の関係になっています。
ところで人間の場合は多くの人が、猫を識別できるにも関わらず、猫の絵を描くことが出来ません。
人間の脳は、これらAIが獲得している何かの機能を削ぎ落としているようです。
なんかそのへんが一方向性ハッシュっぽさあるよなーって思った。この辺のアイディアを組み合わせたらなにか、劇的にAIの計算コストを下げれそうよね。
あとは発話とかの人類共通の計算をハードウェアにしてしまうとか、世界モデルのベースをハードウェアに落とし込むとか色々計算効率化はありそうな気がしている。
人力イラストは、目から入ってハッシュ化され脳に記録されたデータ、もしくは頑張ってハッシュを行わずに保存されてるデータからの手を使った画像復元処理って感じだろうか。
アニメとか漫画のイラストとか絵を見るとき脳の効率を使わずに気分良く見れるのは、脳内の削ぎ落とされたデータに近い形での表現だからだろうなって思いました。
こうなってくるとハッシュはいいすぎててたんに情報量を落としたデータだな。
で、君何書いたの?
別に関数型言語だろうがオブジェクト指向言語だろうが業務によって使い分けるけど
普通に考えると型付けの関数型ならバグが少なくなりそうなのに実際には全くそんなこと無い
観察したことがある感じだとオブジェクト指向的に状態を整理するようなことが苦手で
それが嫌でオブジェクト指向から逃げて関数型を主張してくるので
例えば商品として服と靴があったとして、カートに入れたら服は税込みなのに靴は税抜きになってたりする
ちなみにオブジェクト指向をやたら主張してくるやつはバグは少ないけど開発がめちゃくちゃ遅い
俺の考えた最強のデータ構造を模索し続けるし他人にもそれを求めるのでめちゃくちゃ面倒くさい
服と靴を買うだけのサイトなのに「靴磨きのサービスを追加する場合は?」みたいなことを考え始める
何事もほどほどがいいと思う
まず前提として、俺はstaticおじさんではない
pythonがメインなので、仕事上でstaticを使ったことはない
しかし前職で巨大なユーティリティモジュールを書く機会があったが、引数にのみ依存していればいい関数しか存在しなかったので、staticを使ったことはある
staticおじさんは「できる・できない」の視点じゃなくて「保守性・可読性・テスタビリティ」の観点でもちゃんと考えてんの?
そりゃ力技で書けばどんなソフトウェアも結局はアセンブリになるんだから関数の塊になるわけだけど、保守性もテスタビリティも最悪じゃない?
そのへんはstaticおじさんの見解を聞かせてほしい
そんな Rust OOP だけでGoogle検索した結果だけ出されても
Rustではtraitでインターフェース定義して、traitさえ実装してればなんでも受け入れる多態性を確保した関数を実装して、
構造体に紐づいたメソッド呼び出しを中心としたコードがRustで書かれたコードの9割だと思うけど、
それがOOPじゃなくて何?
可視性管理がモジュールじゃなくてクラスに紐づいてる古の欠陥言語の問題であって
モジュールで可視性管理してる現代の言語では obj.method() なんて Obj::method(&obj) の糖衣構文でしかないから、関数は基本全部staticだよね
関数型で書けばというが、すでにプロジェクトが「javaを使う」と決まっているときにmathモジュールのようなものを作らなければならないことなど腐るほどあるだろう
mathモジュールをstaticだけで作るということは、そもそもクラスの内部フィールドに依存しないで、引数だけに依存するということだ
これは
ということを意味する