いざ、語ろうぞ。
スレタイ超過のため、一部省略。
Go, Erlang, Kotlin, etcもウェルカム。
Haskellは協議により次世代失格になりました
前スレ
次世代言語議論スレ[Go Rust Haskell Scala]第3世代
http://echo.2ch.net/test/read.cgi/tech/1488608741/
探検
次世代言語議論スレ[Go Rust Kotlin Scala]第4世代 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2017/04/20(木) 04:43:27.12ID:mNwXvrXv
244デフォルトの名無しさん
2017/05/06(土) 00:04:14.20ID:nikLe03p >>240
それだとコンパイル通らないよ
import System.Environment (getArgs)
import System.IO (readFile)
import Data.List (isInfixOf)
search :: String -> String -> Bool
search = isInfixOf
main :: IO ()
main = do
(word:file:_) <- getArgs
putStrLn . show =<< search word <$> readFile file
それだとコンパイル通らないよ
import System.Environment (getArgs)
import System.IO (readFile)
import Data.List (isInfixOf)
search :: String -> String -> Bool
search = isInfixOf
main :: IO ()
main = do
(word:file:_) <- getArgs
putStrLn . show =<< search word <$> readFile file
245デフォルトの名無しさん
2017/05/06(土) 00:23:53.40ID:9tv813Aq え。。。
通ったけど。。。
通ったけど。。。
246デフォルトの名無しさん
2017/05/06(土) 00:29:01.13ID:gXvlLccW うん、普通のデータ処理の比較は面白そうだ。
247デフォルトの名無しさん
2017/05/06(土) 00:29:23.53ID:9tv813Aq248デフォルトの名無しさん
2017/05/06(土) 00:33:03.34ID:nikLe03p249デフォルトの名無しさん
2017/05/06(土) 00:35:03.84ID:9tv813Aq あ、argsをargaってタイポしてた。。。
LinuxにHaskell入れたばかりなのでPCで実行確認してiPhoneで書き込んでるんで、コピペでコンパイル出来ない時はどこかタイポあると思う。
LinuxにHaskell入れたばかりなのでPCで実行確認してiPhoneで書き込んでるんで、コピペでコンパイル出来ない時はどこかタイポあると思う。
250デフォルトの名無しさん
2017/05/06(土) 00:50:29.93ID:9tv813Aq 次世代言語勢に参戦して貰わんとだから、第二形態は明日の夜発表って感じで良いかな。
一応、第三形態までの予定。
明後日から夜勤なんで、第三形態どうすっかな。
一応、第三形態までの予定。
明後日から夜勤なんで、第三形態どうすっかな。
252あ
2017/05/06(土) 02:11:17.59ID:BE072L/9 >>241
Go版、マシどころか疎にしておいたところ密にされてしまったな。
ノブのないドア、ノブはあるけどラッチのないドア
実現する術がなくなったね。
With Withなんて気色悪い無理に継承関係を作ったような型作るくらいならもう継承とか全部捨てたほうがマシ。
もうちょっと真面目にやって。
Go版、マシどころか疎にしておいたところ密にされてしまったな。
ノブのないドア、ノブはあるけどラッチのないドア
実現する術がなくなったね。
With Withなんて気色悪い無理に継承関係を作ったような型作るくらいならもう継承とか全部捨てたほうがマシ。
もうちょっと真面目にやって。
253デフォルトの名無しさん
2017/05/06(土) 03:50:07.06ID:oP2bFz9u Kotlinになれるためにアプリを作ってるんだけど、久しぶりにc++触るとセミコロンがうっとおしくなるね
参照、ポインタ、値を自由に扱えてかつ新しい言語の特徴を捉えてるような言語が出てほしい
参照、ポインタ、値を自由に扱えてかつ新しい言語の特徴を捉えてるような言語が出てほしい
254デフォルトの名無しさん
2017/05/06(土) 06:35:37.73ID:7HgaeBZn 勝手にHaskellをスレタイから省くな。
255デフォルトの名無しさん
2017/05/06(土) 07:19:08.10ID:gBi5/Vqg >>252
前スレの埋め込みを使った再帰型の試みとして、主要なメソッドを再定義しなければならない版より「マシ」と言ったまでで
君のチャンネル版よりマシという意味ではない
それは他言語版と同じ設計で比較しやすくしたって程度だから気にしないで
前スレの埋め込みを使った再帰型の試みとして、主要なメソッドを再定義しなければならない版より「マシ」と言ったまでで
君のチャンネル版よりマシという意味ではない
それは他言語版と同じ設計で比較しやすくしたって程度だから気にしないで
256デフォルトの名無しさん
2017/05/06(土) 07:23:37.59ID:gXvlLccW 各自、次世代言語に求めるものが違うのだろうけど、
気を悪くしないで欲しいがHaskell外してKotlinは個人的にはないかな。
敢えて外すなら次世代感満載のAgdaを入れて欲しい。
が、呼び水としての趣旨からしたらHaskellを敢えて外す理由が分からない、個人的な怨嗟?
気を悪くしないで欲しいがHaskell外してKotlinは個人的にはないかな。
敢えて外すなら次世代感満載のAgdaを入れて欲しい。
が、呼び水としての趣旨からしたらHaskellを敢えて外す理由が分からない、個人的な怨嗟?
257デフォルトの名無しさん
2017/05/06(土) 08:00:28.21ID:Yu22orOs 実用性が乏しすぎるので次世代にふさわしくないとの事
あと前スレでまともなコードを掲示しなかったので、そもそもHaskellerが居ない事が分かった
あと前スレでまともなコードを掲示しなかったので、そもそもHaskellerが居ない事が分かった
258デフォルトの名無しさん
2017/05/06(土) 08:15:37.40ID:JdaZnrFf259デフォルトの名無しさん
2017/05/06(土) 08:35:08.14ID:9tv813Aq Haskell推しだが、次世代取れるほどライブラリ充実してないし、速くもないからsmalltalk的な立ち位置だと思ってる。
次世代じゃ無いけど、学ぶべき価値ある言語。
次世代じゃ無いけど、学ぶべき価値ある言語。
260デフォルトの名無しさん
2017/05/06(土) 08:41:48.81ID:gBi5/Vqg >>255
参考まで、ほぼ同じ設計にした場合の
Ruby版 http://ideone.com/7VnOfe
Python版 http://ideone.com/UngSO8
Scala版 http://scastie.org/30851
Swift版 http://swift.sandbox.bluemix.net/#/repl/59032b64ebfba02b8d274320
参考まで、ほぼ同じ設計にした場合の
Ruby版 http://ideone.com/7VnOfe
Python版 http://ideone.com/UngSO8
Scala版 http://scastie.org/30851
Swift版 http://swift.sandbox.bluemix.net/#/repl/59032b64ebfba02b8d274320
261デフォルトの名無しさん
2017/05/06(土) 08:43:22.81ID:9tv813Aq262あ
2017/05/06(土) 08:50:48.08ID:BE072L/9263デフォルトの名無しさん
2017/05/06(土) 08:56:13.51ID:VviFbgmi 各言語、得意分野あるからな。
証明付きでプログラム書けとかなったら、Coqなどの証明支援系の独壇場で、
他言語の入り込む余地がないように思われるが如何?
証明付きでプログラム書けとかなったら、Coqなどの証明支援系の独壇場で、
他言語の入り込む余地がないように思われるが如何?
264デフォルトの名無しさん
2017/05/06(土) 08:58:57.84ID:ye19IDAy Bertrand MeyerがEiffelを大事そうに抱えながら>>263を睨んでいるぞ。
265デフォルトの名無しさん
2017/05/06(土) 09:31:45.79ID:nikLe03p 自分もRubyやGroovy使ってたせいかもしれないが
Kotlinは言語としては悪くないけど次世代感は感じない
golangぐらい簡素な仕様にしてくれればまた違ったとは思うけどJVM言語だしなあ
Kotlinは言語としては悪くないけど次世代感は感じない
golangぐらい簡素な仕様にしてくれればまた違ったとは思うけどJVM言語だしなあ
266デフォルトの名無しさん
2017/05/06(土) 10:21:48.72ID:BwUsBv8i 言語が次世代でありさえすればライブラリはJVMでもなんでもいいぞ
ライブラリ関係ないなら、ライブラリがない言語でも参加しやすい
ライブラリ関係ないなら、ライブラリがない言語でも参加しやすい
267デフォルトの名無しさん
2017/05/06(土) 10:22:29.07ID:ubF1nelW >>262
> smalltalkでもパッシングに徹すればひたすらコーディング量はあるけど割りと文句無いのできそう
具体的にはどこらへんにその「量」を感じた?
ドアの振る舞いを記述してるコード自体はGoで書くよりずっと簡潔でステップ数も少ないはずだけど
念のため補足すると件のSmalltalk版では、通常はGUIやIDE任せにするクラスやメソッドの定義
(ちなみにGNU Smalltalkなどを除き、IDE前提のSmalltalkにはクラスやメソッド定義の構文が無い)
をあえてクラスへのメッセージングでやっているのでそのぶん冗長にみえるかもしれないけど
> smalltalkでもパッシングに徹すればひたすらコーディング量はあるけど割りと文句無いのできそう
具体的にはどこらへんにその「量」を感じた?
ドアの振る舞いを記述してるコード自体はGoで書くよりずっと簡潔でステップ数も少ないはずだけど
念のため補足すると件のSmalltalk版では、通常はGUIやIDE任せにするクラスやメソッドの定義
(ちなみにGNU Smalltalkなどを除き、IDE前提のSmalltalkにはクラスやメソッド定義の構文が無い)
をあえてクラスへのメッセージングでやっているのでそのぶん冗長にみえるかもしれないけど
268デフォルトの名無しさん
2017/05/06(土) 12:29:53.45ID:64kzmcng 何でSmalltalkerさんは劣った設計で比較する事に拘ってんの?
Goが得意な技法はダメ、Smalltalkで書きやすい技法だけ使って書くっていう縛りでもあるの?
Goが得意な技法はダメ、Smalltalkで書きやすい技法だけ使って書くっていう縛りでもあるの?
269デフォルトの名無しさん
2017/05/06(土) 12:43:22.47ID:xfCUj8G0 >>259
同意
同意
270デフォルトの名無しさん
2017/05/06(土) 12:46:26.00ID:ye19IDAy271デフォルトの名無しさん
2017/05/06(土) 12:52:37.52ID:ubF1nelW >>268
いや別に拘ってないですよ
そもそも誤解があるようなので断わっておくとGoを貶めるつもりは全然なくて
Smalltalkに難癖を付けてるID:BE072L/9が前スレからGoが詳しそうなんで
その方がわかりやすかろうとGoを引き合いに出したまでです
Goの得意な技法を駆使した優れた設計ってどんなのですか?ぜひ教えてください
今のところ埋め込みスタイル以外で出ているのだとこういうのでしょうか?→http://ideone.com/yvttId
このお題自体では設計を工夫しにくいと言うことであれば、新たにGoに有利なお題をご提供いただければと
いや別に拘ってないですよ
そもそも誤解があるようなので断わっておくとGoを貶めるつもりは全然なくて
Smalltalkに難癖を付けてるID:BE072L/9が前スレからGoが詳しそうなんで
その方がわかりやすかろうとGoを引き合いに出したまでです
Goの得意な技法を駆使した優れた設計ってどんなのですか?ぜひ教えてください
今のところ埋め込みスタイル以外で出ているのだとこういうのでしょうか?→http://ideone.com/yvttId
このお題自体では設計を工夫しにくいと言うことであれば、新たにGoに有利なお題をご提供いただければと
272デフォルトの名無しさん
2017/05/06(土) 12:58:55.97ID:ubF1nelW273デフォルトの名無しさん
2017/05/06(土) 13:05:23.06ID:BwUsBv8i 愚問という便利な言葉がある
答える側には間違えるリスクがあるのに問う側を無リスクで無謬とするのは不公平
答える側には間違えるリスクがあるのに問う側を無リスクで無謬とするのは不公平
274デフォルトの名無しさん
2017/05/06(土) 13:51:25.64ID:dM6SBXFL その言語特有の機能で書いた方が優劣分かりやすくね?
275デフォルトの名無しさん
2017/05/06(土) 14:24:42.57ID:wNWjHlrM >Goの得意な技法を駆使した優れた設計
chan と select 使ったサーバープログラムなんでねーの。
ああいうふうにチャンネルに放り込んだものを適当に一列に並べてくれるのはかなり楽。
chan と select 使ったサーバープログラムなんでねーの。
ああいうふうにチャンネルに放り込んだものを適当に一列に並べてくれるのはかなり楽。
276デフォルトの名無しさん
2017/05/06(土) 15:30:08.75ID:TldMS9JZ ここまで次世代言語から>>240のコードが出てない件。
単純な力押し検索だから、難しいアルゴリズムでも無いんだが。。。
おいらも頭悪いんよ。
>>244の書き方でargs書き換えと、nsをcontentから取ってcsへ変更。sも折角だからwordから取ってwへ。
import System.Environment
search _ [] = False
search w cs | take (length w) cs == w = True
search w (_:cs) = search w cs
main = do
(file:word:_) <- getArgs
content <- readFile file
print $ search word content
単純な力押し検索だから、難しいアルゴリズムでも無いんだが。。。
おいらも頭悪いんよ。
>>244の書き方でargs書き換えと、nsをcontentから取ってcsへ変更。sも折角だからwordから取ってwへ。
import System.Environment
search _ [] = False
search w cs | take (length w) cs == w = True
search w (_:cs) = search w cs
main = do
(file:word:_) <- getArgs
content <- readFile file
print $ search word content
277デフォルトの名無しさん
2017/05/06(土) 15:43:50.78ID:TldMS9JZ 仕様変更への耐性だから、基準となる第一形態のコードの長さは問わない。
どんな変更があるか事前準備したクラスがあってもおk。
第三形態までの変更箇所の少なさが言語の優劣とする。
どんな変更があるか事前準備したクラスがあってもおk。
第三形態までの変更箇所の少なさが言語の優劣とする。
278あ
2017/05/06(土) 16:40:50.57ID:BE072L/9 意見≒難癖とは生きづらいな
279デフォルトの名無しさん
2017/05/06(土) 18:13:57.91ID:ye19IDAy 事実に基づかない悪評価は難癖だわな
280デフォルトの名無しさん
2017/05/06(土) 20:12:56.46ID:XqR1goBE エンジニアガイジのGo版ってあのなぜか最初から並列化を意識して書かれてたやつだっけ?
281あ
2017/05/06(土) 23:05:01.66ID:BE072L/9 >>279
主観としての悪評価と客観としての悪評価を混同すんなよ…。
採点してる訳じゃないんだから。そこまで傲慢でも無いよ。
俺Rubyボロクソに言ってるけど、主観としてだよ。
>>280
並列化を意識してるんじゃないよ。
コンポーネントとして存在し得るかを考えただけ。
ノブがノブだけで存在できないなんておかしいじゃん。何にも繋がってない地面に転がったノブさえ定義できないのに、突然ドアについてる突起をノブだと言うくらい不自然じゃないの?
オブジェクト指向ってなんなの?
地面に転がってるのも、ドアについててもノブであって、ノブとしての役割を果たしているか否かでしかないのでは?
確かにそのノブがノブとして成立するのはドアについたときだろうけど、それ以前からそいつ自身の存在が変わったわけじゃないじゃん。
主観としての悪評価と客観としての悪評価を混同すんなよ…。
採点してる訳じゃないんだから。そこまで傲慢でも無いよ。
俺Rubyボロクソに言ってるけど、主観としてだよ。
>>280
並列化を意識してるんじゃないよ。
コンポーネントとして存在し得るかを考えただけ。
ノブがノブだけで存在できないなんておかしいじゃん。何にも繋がってない地面に転がったノブさえ定義できないのに、突然ドアについてる突起をノブだと言うくらい不自然じゃないの?
オブジェクト指向ってなんなの?
地面に転がってるのも、ドアについててもノブであって、ノブとしての役割を果たしているか否かでしかないのでは?
確かにそのノブがノブとして成立するのはドアについたときだろうけど、それ以前からそいつ自身の存在が変わったわけじゃないじゃん。
282デフォルトの名無しさん
2017/05/06(土) 23:09:30.32ID:bKqO2+sL >>281
んー。クローザーついてないドアにもスレッド使ってなかったっけ?
んー。クローザーついてないドアにもスレッド使ってなかったっけ?
283あ
2017/05/06(土) 23:16:33.79ID:BE072L/9 >>282
スレッドと言うかまあマイクロスレッド使ってるけど。
キューイングしてる所で同期をGoにやってもらった形に近い。
イベントやらメッセージパッシングと変わらんつもりだけど、キュー抜いて中もgoroutineなのは確かに悪手は悪手か。
それは確かにそうだな。
スレッドと言うかまあマイクロスレッド使ってるけど。
キューイングしてる所で同期をGoにやってもらった形に近い。
イベントやらメッセージパッシングと変わらんつもりだけど、キュー抜いて中もgoroutineなのは確かに悪手は悪手か。
それは確かにそうだな。
284デフォルトの名無しさん
2017/05/07(日) 02:09:25.68ID:bNWzpChq まだHaskell信者が暴れてるのか
ラッチの開閉すら実装出来ないと前スレで判明してのによく再登場出来るな
ラッチの開閉すら実装出来ないと前スレで判明してのによく再登場出来るな
285デフォルトの名無しさん
2017/05/07(日) 02:38:17.71ID:zdh+Rbcj いやあの問題が糞だと思ったHaskellerが問題出してる流れじゃないの?
286デフォルトの名無しさん
2017/05/07(日) 02:59:03.65ID:JOXD31Or >>284
実装はできてたでしょ?
実装はできてたでしょ?
287デフォルトの名無しさん
2017/05/07(日) 04:54:40.21ID:ehHyxLGM 久しぶりに覗いてみたけど、お前らまだやってたの?
良く飽きないな
良く飽きないな
288デフォルトの名無しさん
2017/05/07(日) 08:02:58.35ID:M/7nygcc Smalltalkerはお題で使って良い言語機能に縛りを入れようとするからクソ
289デフォルトの名無しさん
2017/05/07(日) 08:26:48.70ID:HF1KyfYe まぁここであーだこーだ言ったところで、大手の採用が多くなった言語が次世代扱いになるだけだからな
主に決めるのは外人だ
主に決めるのは外人だ
290デフォルトの名無しさん
2017/05/07(日) 09:55:32.27ID:6O1o1Sih291デフォルトの名無しさん
2017/05/07(日) 10:05:54.32ID:4Tfm86M3 >>281
主観で悪評価しているなら、それこそ難癖以外の要素ゼロじゃないか。
主観で悪評価しているなら、それこそ難癖以外の要素ゼロじゃないか。
292デフォルトの名無しさん
2017/05/07(日) 10:48:31.07ID:6O1o1Sih 嘘ニュースを野放しにして個人の感想を問題視するのは本末転倒
293デフォルトの名無しさん
2017/05/07(日) 10:56:51.74ID:U5ljnRqU Haskell 難しすぎて叩きたくなるのもわかる。
294デフォルトの名無しさん
2017/05/07(日) 11:24:25.93ID:PZmLVVS1 ほんと難しいよ
物を作る道具としては失格だな
物を作る道具としては失格だな
295デフォルトの名無しさん
2017/05/07(日) 11:25:56.17ID:6O1o1Sih 静的型が難しすぎて失格なんだよ
叩きたいことと叩くべきことが一致してない
叩きたいことと叩くべきことが一致してない
296デフォルトの名無しさん
2017/05/07(日) 11:29:53.16ID:Kq+qtoGk microsoft word の動作が難しいって意味での難しさだわな。
無意味なむずかしさだわ。
無意味なむずかしさだわ。
297デフォルトの名無しさん
2017/05/07(日) 11:56:43.37ID:uANj4DVJ 性的型が難しいって。。。
自分で正しくプログラム組めてませんって言ってるようなもんじゃん。。。
自分で正しくプログラム組めてませんって言ってるようなもんじゃん。。。
298デフォルトの名無しさん
2017/05/07(日) 12:01:01.50ID:uANj4DVJ 溜まってんのかな。。。
x性的型が
o静的型が
x性的型が
o静的型が
299デフォルトの名無しさん
2017/05/07(日) 14:33:06.42ID:2RFcNsFZ お前らのゆう次世代言語って、キャットドア問題を解けるのか?
300デフォルトの名無しさん
2017/05/07(日) 14:53:43.84ID:38Z51qvh301デフォルトの名無しさん
2017/05/07(日) 14:58:24.43ID:EXP2lJkU >>240
>>276
ライブラリ使うのとかはありかな?
主旨から外れるかもしれないが、こんなのどうだろう
import System.Environment
import Data.Conduit
import qualified Data.Conduit.Text as CT
import qualified Data.Conduit.Binary as CB
import Control.Monad.Trans.Resource
import qualified Data.Text as T
import Control.Monad.IO.Class (MonadIO)
searchSink :: (Monad m, MonadIO m) => T.Text -> Sink T.Text m Bool
searchSink w = do
n <- await
return $ case n of
Nothing -> False
Just s -> T.isInfixOf w s
main :: IO ()
main = do
(file:word:_) <- getArgs
x <- runResourceT
$ CB.sourceFile file
$= CT.decode CT.utf8
$$ searchSink (T.pack word)
print x
>>276
ライブラリ使うのとかはありかな?
主旨から外れるかもしれないが、こんなのどうだろう
import System.Environment
import Data.Conduit
import qualified Data.Conduit.Text as CT
import qualified Data.Conduit.Binary as CB
import Control.Monad.Trans.Resource
import qualified Data.Text as T
import Control.Monad.IO.Class (MonadIO)
searchSink :: (Monad m, MonadIO m) => T.Text -> Sink T.Text m Bool
searchSink w = do
n <- await
return $ case n of
Nothing -> False
Just s -> T.isInfixOf w s
main :: IO ()
main = do
(file:word:_) <- getArgs
x <- runResourceT
$ CB.sourceFile file
$= CT.decode CT.utf8
$$ searchSink (T.pack word)
print x
302デフォルトの名無しさん
2017/05/07(日) 15:03:42.15ID:zdh+Rbcj キャットドアが解けて何かいいことがあるんですかね?
303デフォルトの名無しさん
2017/05/07(日) 16:13:25.59ID:m17h7+4k >>301
仕様変更への耐性を競うだけなので、まあライブラリ使ってもそれで仕様変更に強いなら構わないけど。。。
Haskellとsmalltalkしか回答寄せて貰えてない。。。
キャットドアのクラス作るだけの問題よりも、客からこんな機能付けてって要望に応える形で仕様変更されたのを如何にコード変えずに対応するかって問題は実践向きで良いと思ったんだが。。。
仕様変更への耐性を競うだけなので、まあライブラリ使ってもそれで仕様変更に強いなら構わないけど。。。
Haskellとsmalltalkしか回答寄せて貰えてない。。。
キャットドアのクラス作るだけの問題よりも、客からこんな機能付けてって要望に応える形で仕様変更されたのを如何にコード変えずに対応するかって問題は実践向きで良いと思ったんだが。。。
304デフォルトの名無しさん
2017/05/07(日) 16:18:52.35ID:m17h7+4k あと3時間もすれば会社行くからコードは明日。。。も出かける予定で無理か。。。
明後日には書くので、第二形態の問題だけ出しとく。
ファイル中に検索するキーワード見つかったら、見つかった数も表示するように機能追加。
見つからなかった時は表示しなくても良いし、表示を分けるの面倒臭かったら0個って表示で見つかった時と表示機能を共有しても良い。
明後日には書くので、第二形態の問題だけ出しとく。
ファイル中に検索するキーワード見つかったら、見つかった数も表示するように機能追加。
見つからなかった時は表示しなくても良いし、表示を分けるの面倒臭かったら0個って表示で見つかった時と表示機能を共有しても良い。
305デフォルトの名無しさん
2017/05/07(日) 16:26:36.91ID:EXP2lJkU306デフォルトの名無しさん
2017/05/07(日) 17:24:00.66ID:zdh+Rbcj307デフォルトの名無しさん
2017/05/07(日) 17:30:40.95ID:m17h7+4k308デフォルトの名無しさん
2017/05/07(日) 17:57:04.14ID:zdh+Rbcj >>307
意図が良く分からないんだけど、Pythonで言えば
from sys import argv
def search(path, word):
____with open(path) as f:
________for l in f:
____________if word in l:
________________return True
________else:
____________return False
if __name__ == '__main__':
____print(search(argv[1], argv[2]))
みたいなのでいいの? とりあえず書き捨ての簡単なプログラムから初めて拡張していく感じで
多分これ拡張しろって言われたらsearch関数まるっと書き直しちゃうけど
意図が良く分からないんだけど、Pythonで言えば
from sys import argv
def search(path, word):
____with open(path) as f:
________for l in f:
____________if word in l:
________________return True
________else:
____________return False
if __name__ == '__main__':
____print(search(argv[1], argv[2]))
みたいなのでいいの? とりあえず書き捨ての簡単なプログラムから初めて拡張していく感じで
多分これ拡張しろって言われたらsearch関数まるっと書き直しちゃうけど
309デフォルトの名無しさん
2017/05/07(日) 18:08:49.23ID:m17h7+4k310デフォルトの名無しさん
2017/05/07(日) 18:14:46.33ID:zdh+Rbcj おっと2問目もあったか
Pythonで言えば
def count(path, word):
____with open(path) as f:
________return sum(l.count(word) for l in f)
でも追加しておけばOKだな。うん。searchの内容一切使ってないけど変更は3行やね
つーかsearchももっと短くできたな
Pythonで言えば
def count(path, word):
____with open(path) as f:
________return sum(l.count(word) for l in f)
でも追加しておけばOKだな。うん。searchの内容一切使ってないけど変更は3行やね
つーかsearchももっと短くできたな
311デフォルトの名無しさん
2017/05/07(日) 18:18:38.81ID:zdh+Rbcj312デフォルトの名無しさん
2017/05/07(日) 18:23:23.71ID:/lTp1FVO >>304 Squeak/Pharo Smalltalk
| search |
search := [:fname :keywd |
FileStream oldFileNamed: fname do: [:file |
| count |
count := 0.
[file match: keywd] whileTrue: [
count := count + 1.
file atEnd ifFalse: [file skip: 1 - keywd size]].
count
]
].
search value: 'test.txt' value: 'something'
http://ws.stfx.eu/RU59LGEMKG9G
| search |
search := [:fname :keywd |
FileStream oldFileNamed: fname do: [:file |
| count |
count := 0.
[file match: keywd] whileTrue: [
count := count + 1.
file atEnd ifFalse: [file skip: 1 - keywd size]].
count
]
].
search value: 'test.txt' value: 'something'
http://ws.stfx.eu/RU59LGEMKG9G
313デフォルトの名無しさん
2017/05/07(日) 18:23:58.94ID:m17h7+4k そこをどうにか機能追加で
search test.txt hoge
Ture 4
みたいな感じに表示項目増えるように第一形態のコードを育てる様にして欲しいんだが。。。
関数名以外は中身が丸っと変わっても良いけどさ。
search test.txt hoge
Ture 4
みたいな感じに表示項目増えるように第一形態のコードを育てる様にして欲しいんだが。。。
関数名以外は中身が丸っと変わっても良いけどさ。
314デフォルトの名無しさん
2017/05/07(日) 18:27:46.84ID:zdh+Rbcj え、関数名変えたらいかんの?
それはおかしいやろ
一回作った関数の振る舞いを変更するのはおかしい。別の関数を作るべき
それはおかしいやろ
一回作った関数の振る舞いを変更するのはおかしい。別の関数を作るべき
315デフォルトの名無しさん
2017/05/07(日) 18:28:27.76ID:m17h7+4k Haskellではタプルをそのまま表示して
search test.txt hoge
(True,4)
ってする予定。
search test.txt hoge
(True,4)
ってする予定。
316デフォルトの名無しさん
2017/05/07(日) 18:29:37.82ID:m17h7+4k >>314
そう言う問題も第二弾として考えてる。
そう言う問題も第二弾として考えてる。
317デフォルトの名無しさん
2017/05/07(日) 18:32:35.47ID:zdh+Rbcj うーん。この程度の量で無理に機能追加で育てていくこと自体が設計ミスだと思うけどなあ
318デフォルトの名無しさん
2017/05/07(日) 18:42:25.99ID:m17h7+4k そこは承知の上で、まだ次世代言語入門したばかりでも参入しやすい様にってのと、過去のコードに影響あるよね?って事で第二弾に持って行きたい。
319デフォルトの名無しさん
2017/05/07(日) 18:47:14.19ID:zdh+Rbcj はいPythonまとめ
searchはもっと短い実装思いついたから短くした。
from sys import argv
def search(path, word): # 1st
____with open(path) as f: # 1st
________return any(word in l for l in f) # 1st
def count(path, word): # 2nd
____with open(path) as f: # 2nd
________return sum(l.count(word) for l in f) # 2nd
if __name__ == '__main__':
# print(search(argv[1], argv[2])) # 1st
print(count(argv[1], argv[2])) # 2nd
変更は2ndって書いてある4行。一切再利用とかしてないけど、このお題に関して分かりやすさ、変更の少なさ、安全さでこれ超えるのは無理でしょ
searchはもっと短い実装思いついたから短くした。
from sys import argv
def search(path, word): # 1st
____with open(path) as f: # 1st
________return any(word in l for l in f) # 1st
def count(path, word): # 2nd
____with open(path) as f: # 2nd
________return sum(l.count(word) for l in f) # 2nd
if __name__ == '__main__':
# print(search(argv[1], argv[2])) # 1st
print(count(argv[1], argv[2])) # 2nd
変更は2ndって書いてある4行。一切再利用とかしてないけど、このお題に関して分かりやすさ、変更の少なさ、安全さでこれ超えるのは無理でしょ
320デフォルトの名無しさん
2017/05/07(日) 18:51:13.41ID:zdh+Rbcj321デフォルトの名無しさん
2017/05/07(日) 19:24:12.22ID:m17h7+4k (しぶしぶ)了解。
322デフォルトの名無しさん
2017/05/07(日) 19:36:18.70ID:4ZC1qsBr 再利用しないほうが少ない変更でいけるものに再利用を強制して、その分量で言語の優劣を測るというのは理不尽な話だ
323デフォルトの名無しさん
2017/05/07(日) 20:18:32.73ID:zdh+Rbcj Pythonのコードで再利用せずに済んでるのはバッテリー付き言語であるのが大きいな。もし次世代言語でmatchとかcountすらないようなのがあるとしたらその言語にとってはそこそこいい課題になるかもな
324デフォルトの名無しさん
2017/05/07(日) 20:59:47.13ID:/lTp1FVO >>304
ファイルの行ごとの内容はメモリに収まる程度なのか、とか
例えば 'xxxoooxxx' という文字列内に 'oo' は1個なのか2個なのか、とかは
回答側の都合がいいように自由に決めていい?
ファイルの行ごとの内容はメモリに収まる程度なのか、とか
例えば 'xxxoooxxx' という文字列内に 'oo' は1個なのか2個なのか、とかは
回答側の都合がいいように自由に決めていい?
325デフォルトの名無しさん
2017/05/07(日) 21:31:50.41ID:6O1o1Sih 仕様変更というから仕様バグをデバッグするのかと思ったら
バグのない完成品に機能追加して多機能化すれば優秀さを示せるって発想か
嫌な予感がする
バグのない完成品に機能追加して多機能化すれば優秀さを示せるって発想か
嫌な予感がする
327デフォルトの名無しさん
2017/05/07(日) 23:11:40.56ID:4ZC1qsBr >>326
どういう意味?
どういう意味?
328デフォルトの名無しさん
2017/05/08(月) 01:06:43.83ID:F16X/4LX Ocamlって型クラスないのか
329あ
2017/05/08(月) 06:18:15.11ID:FkyLZnez >>327
再利用せずに入れ替えたいから、その部品が使われるときのインターフェイスを定義して、関係ないものをカプセル化するんじゃん?
再利用して無理に機能追加してると、割りと早めにインターフェイスは形骸化するよ。
引き戸である、とか、このドアは回転扉で開けると反対が閉まる、とか、エアロックみたく、どちらかしか開かない制限をかけたいとか、そういう要件で安易に
扉だったものを魔改造するハメになる。
そうすると、インターフェイスってものや、カプセル化ってものが、完全に無意味になる。
魔改造されてて、本来の意味を失ったインターフェイスの「ドアを押す」メソッドとか怖すぎるじゃん。
再利用せずに入れ替えたいから、その部品が使われるときのインターフェイスを定義して、関係ないものをカプセル化するんじゃん?
再利用して無理に機能追加してると、割りと早めにインターフェイスは形骸化するよ。
引き戸である、とか、このドアは回転扉で開けると反対が閉まる、とか、エアロックみたく、どちらかしか開かない制限をかけたいとか、そういう要件で安易に
扉だったものを魔改造するハメになる。
そうすると、インターフェイスってものや、カプセル化ってものが、完全に無意味になる。
魔改造されてて、本来の意味を失ったインターフェイスの「ドアを押す」メソッドとか怖すぎるじゃん。
330デフォルトの名無しさん
2017/05/08(月) 06:39:47.64ID:pk8djPQr331あ
2017/05/08(月) 06:45:50.09ID:FkyLZnez >>330
インターフェイス、型、あとはクラス構造自体の意義、もうちょっと広くとっても良いかなって思って。
Cでもアセンブラでも可換な作り方って出来るから、あまりに具体例にするのも話が矮小化しそうだなぁって思ったんよ。
申し訳ない。
「も、含めて」とかちょっと言い方考えるわ。
インターフェイス、型、あとはクラス構造自体の意義、もうちょっと広くとっても良いかなって思って。
Cでもアセンブラでも可換な作り方って出来るから、あまりに具体例にするのも話が矮小化しそうだなぁって思ったんよ。
申し訳ない。
「も、含めて」とかちょっと言い方考えるわ。
332デフォルトの名無しさん
2017/05/08(月) 06:53:05.16ID:pk8djPQr333デフォルトの名無しさん
2017/05/08(月) 06:57:25.03ID:Ya4nTupG アルゴリズムなんてどれで書いても同じなんだから
もっとUI作りやすい言語くれよ。
もっとUI作りやすい言語くれよ。
334あ
2017/05/08(月) 07:22:21.17ID:FkyLZnez335デフォルトの名無しさん
2017/05/08(月) 18:51:10.68ID:nU60kBJx >>324
行は基本メモリに収まる程度だよ。
小説とか、常識的なテキストで問題無ければおk。
行に一個二個を回答側の都合ってのは普通駄目だろう。。。
でも、あんまりにも回答者いないんでもう良いよ。。。
行は基本メモリに収まる程度だよ。
小説とか、常識的なテキストで問題無ければおk。
行に一個二個を回答側の都合ってのは普通駄目だろう。。。
でも、あんまりにも回答者いないんでもう良いよ。。。
336デフォルトの名無しさん
2017/05/08(月) 18:54:25.80ID:nU60kBJx >>329
あー。。。
あんま考えずに提案してたわ。。。
うーん。。。
インターフェースは変えずにって条件付ける?
実際に引数増やさないと駄目な時は補助関数作って、実際の処理はそっちに丸投げみたいな形で。
一応第二弾ではそう言うのも考慮して、既存の関数に手を加えないで機能拡張ってテーマで行く予定だけど。
あー。。。
あんま考えずに提案してたわ。。。
うーん。。。
インターフェースは変えずにって条件付ける?
実際に引数増やさないと駄目な時は補助関数作って、実際の処理はそっちに丸投げみたいな形で。
一応第二弾ではそう言うのも考慮して、既存の関数に手を加えないで機能拡張ってテーマで行く予定だけど。
337デフォルトの名無しさん
2017/05/08(月) 21:10:34.76ID:nbca9qQS >>335
> 行に一個二個を回答側の都合ってのは普通駄目だろう。。。
であれば、正規表現に丸投げするのでもなければ処理内容にも影響するので
例えば 'xxxoooxxx' 内に 'oo' は1個と数えるか2個と数えるかとかは出題側で事前にきちんと決めてください
> 行に一個二個を回答側の都合ってのは普通駄目だろう。。。
であれば、正規表現に丸投げするのでもなければ処理内容にも影響するので
例えば 'xxxoooxxx' 内に 'oo' は1個と数えるか2個と数えるかとかは出題側で事前にきちんと決めてください
338デフォルトの名無しさん
2017/05/09(火) 00:31:37.08ID:fIUN0UPL ああ!
勘違いしてた。
そう言うことね。
ラッキー7(777)検索してて7777ってなってたら1個と数えるか2個と数えるかって事か。
私の方法だと2個に数えてるので2個にしましょう。
勘違いしてた。
そう言うことね。
ラッキー7(777)検索してて7777ってなってたら1個と数えるか2個と数えるかって事か。
私の方法だと2個に数えてるので2個にしましょう。
339あ
2017/05/09(火) 02:14:34.77ID:w3DidVUp メモリをジャブジャブ使えて1個で考えて良いなら殆どの言語で一行なんだけどなぁ。
jsで言うと(content+'').split(delimiter).length-1だから。
jsで言うと(content+'').split(delimiter).length-1だから。
340デフォルトの名無しさん
2017/05/09(火) 07:18:26.65ID:83wQykSi >>335
「小説とか」ということは、日本語の可能性もあるの?その場合に想定してるエンコードは?
とにかくideone.comとかで参加者が気軽に動作を確認でき、かつ仕様を満たした回答例を先に出しといてください
実戦向きとか言うわりに細かな仕様がまったくわからんし、動くコードでもなければエスパーするにも限界があるよ
「小説とか」ということは、日本語の可能性もあるの?その場合に想定してるエンコードは?
とにかくideone.comとかで参加者が気軽に動作を確認でき、かつ仕様を満たした回答例を先に出しといてください
実戦向きとか言うわりに細かな仕様がまったくわからんし、動くコードでもなければエスパーするにも限界があるよ
341デフォルトの名無しさん
2017/05/09(火) 08:36:02.65ID:YN7Krfta 言語が次世代になっても要件定義(笑)などが旧世代だと
どうにもならんね
どうにもならんね
342デフォルトの名無しさん
2017/05/09(火) 09:22:59.82ID:7e9h09Aa >>339
+'' ってなんかのおまじない?
+'' ってなんかのおまじない?
344あ
2017/05/09(火) 11:59:38.90ID:b+ihuqXk 言葉足らずだったな。文字列と見せかけて数値にどっかで化けさせた奴対策だったり、そもそも引数来なかったとかそういうやつ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
- 【東京新聞】「偽サッチャー」「自滅的」「時代遅れ」高市首相の経済政策を海外メディアが酷評www [718678614]
- 【朗報】アメリカ、貿易赤字が市場予想を超える大幅縮小WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
- 【悲報】維新の政治資金でガールズバー、高市首相「良いか悪いかは国民の皆さまが判断されること」 [115996789]
- 中国人、ガチ超正論。「日本人がアイヌに対してやったことを『問題ない』とするなら、中国が日本人に同じことをしても文句ないだろう?」 [314039747]
- 【悲報】女性「スタバで癒やされに来たのに、小汚いおっさんがいたあ!!😭」 [769050516]
- 大阪名物「スーパー玉出」が閉店ラッシュ。実は言うほど安くないってマジ? [909790798]
