【C?】最初の言語に何を選ぶか【Haskell?】at TECH
【C?】最初の言語に何を選ぶか【Haskell?】 - 暇つぶし2ch275:デフォルトの名無しさん
21/11/10 15:23:33.09 ABhSQgxq.net
『アホ』や許せるけど、ってどういう意味?

276:デフォルトの名無しさん
21/11/11 22:03:24.31 vxCXx/v+.net
何かいつの間にかキモいのが寄生してんのな

277:デフォルトの名無しさん
21/11/12 06:51:45.09 og7IUmfh.net
Mbって人気持ち悪い

278:デフォルトの名無しさん
21/11/12 10:03:15.07 fy+vdfIh.net
レスが冗長で誤字も多いしそもそもつまらん
誰からも相手にされないからネット上で承認欲求満たしたいんだろうな

279:デフォルトの名無しさん
21/11/12 15:50:52.59 Kl1RPx7L.net
自分の知識披露したいだけで
有益な議論をしたいわけではなさそうだしな
コード例とか出せないみたいだし(エアプでコード書けない?)

280:デフォルトの名無しさん
21/11/30 00:24:56.16 g6Kn8mJH.net
Rubyやってる女の子はかわいい

281:デフォルトの名無しさん
21/11/30 14:11:08.77 +4eAilPB.net
戸倉彩

282:デフォルトの名無しさん
21/12/08 02:18:29.28 7SPCPFJp.net
最初にやる言語で速さとか気にする必要ない
そんなことでマウント合戦して、これからプログラミング始める
美少女を迷わすようなことを言わないようにしましょう

283:デフォルトの名無しさん
21/12/08 15:51:09.86 5uCKYHG+.net
全く美少女じゃないけど私もrubyから入ったわ
職場のrubyの本借りれたし先輩に詳しい人いたのが大きい

284:デフォルトの名無しさん
21/12/08 21:04:33.81 pzF9gjPk.net
>>281
橋本環奈に似てるね。

285:デフォルトの名無しさん
22/01/19 20:43:02.39 Qtd/3JbQ.net
引数書くのやブロック書くのに括弧を多用する言語は疲れる

286:デフォルトの名無しさん
22/01/19 20:54:02.18 tV3PBnn6.net
でもカッコがある方が
エディタが助けてくれるからなあ
pythonとかタブの位置を合わせるのが大変

287:デフォルトの名無しさん
22/01/20 18:59:46.11 Ty/TufmK.net
# Make10面白いな Elixirの勉強がてらに思わず仕事さぼって全解探索作ってしまったわ
defmodule Make10 do
@nums 1..9 |> Enum.map(&{:num, &1, Integer.to_string(&1)})
@ops [{:plus, "+"}, {:minus, "-"}, {:mul, "*"}, {:div, "/"}]
|> Enum.map(&Tuple.insert_at(&1, 0, :calc))
@initial_stack []
@initial_usednumbers []
@initial_state [{@initial_stack, @initial_usednumbers}]
@accept_duplicated_number false
def do_action({stack, used}, action) do
case {stack, action} do
{_, {:num, val, symbol}} ->
if !@accept_duplicated_number and Enum.member?(used, val) do
{[{{val, 1}, "#{symbol}"} | stack], []}
else
{[{{val, 1}, "#{symbol}"} | stack], [val | used]}
end
{[{{c1_n, c1_d}, exp1} | [{{c2_n, c2_d}, exp2} | tail]], {:calc, op, symbol}} ->
expression = "(#{exp2}#{symbol}#{exp1})"
case op do
:plus -> {[{{c2_n * c1_d + c1_n * c2_d, c1_d * c2_d}, expression} | tail], used}
:minus -> {[{{c2_n * c1_d - c1_n * c2_d, c1_d * c2_d}, expression} | tail], used}
:mul -> {[{{c1_n * c2_n, c1_d * c2_d}, expression} | tail], used}
:div -> {[{{c2_n * c1_d, c2_d * c1_n}, expression} | tail], used}
end
end
end

288:デフォルトの名無しさん
22/01/20 19:00:29.87 Ty/TufmK.net
# 続きだよ
def action_candidates(stepcount_remain, {stack, _}) do
stack_depth = Enum.count(stack)
case stack do
[] -> @nums
[_ | []] -> @nums
_ when stack_depth > stepcount_remain -> @ops
_ -> @nums ++ @ops
end
end
def expand_each_state_node(stepcount_remain, state) do
action_candidates(stepcount_remain, state)
|> Enum.map(&do_action(state, &1))
|> Enum.filter(fn {stack, used} -> !Enum.empty?(used) end)
end
def step_one_action(stepcount_remain, statelist) do
statelist
|> Enum.map(&expand_each_state_node(stepcount_remain, &1))
|> List.flatten()
end
def run(num_of_cards \\ 4, {target_val_n, target_val_d} \\ {10, 1}) do
(num_of_cards * 2 - 1)..1
|> Enum.reduce(@initial_state, &step_one_action(&1, &2))
|> Enum.filter(fn {[{{lastval_n, lastval_d}, expression}], used} ->
lastval_n * target_val_d == target_val_n * lastval_d
end)
# |> Enum.each(fn {[{ {lastval_n,lastval_d} ,expression}] , used} -> IO.puts expression end)
end
end

289:デフォルトの名無しさん
22/01/20 19:02:16.35 Ty/TufmK.net
iex(96)> Make10.run
[
{[{{10, 1}, "(1+(2+(3+4)))"}], [4, 3, 2, 1]},
{[{{10, 1}, "(1*(2+(3+5)))"}], [5, 3, 2, 1]},
{[{{10, 1}, "(1-(2-(3+8)))"}], [8, 3, 2, 1]},
{[{{10, 1}, "(1+((2+3)+4))"}], [4, 3, 2, 1]},
{[{{10, 1}, "(1*((2+3)+5))"}], [5, 3, 2, 1]},
{[{{10, 1}, "((1+(2+3))+4)"}], [4, 3, 2, 1]},
{[{{10, 1}, "((1*(2+3))+5)"}], [5, 3, 2, 1]},
{[{{10, 1}, "(1-((2-3)-8))"}], [8, 3, 2, 1]},
{[{{10, 1}, "(1-((2-3)*9))"}], [9, 3, 2, 1]},
{[{{10, 1}, "((1-(2-3))*5)"}], [5, 3, 2, 1]},
{[{{10, 1}, "((1-(2-3))+8)"}], [8, 3, 2, 1]},
{[{{10, 1}, "(1*((2*3)+4))"}], [4, 3, 2, 1]},
{[{{10, 1}, "((1*(2*3))+4)"}], [4, 3, 2, 1]},
{[{{30, 3}, "((1+(2/3))*6)"}], [6, 3, 2, 1]},
{[{{10, 1}, "(1+(2+(4+3)))"}], [3, 4, 2, 1]},
{[{{20, 2}, "(1/(2/(4*5)))"}], [5, 4, 2, 1]},
{[{{10, 1}, "(1-(2-(4+7)))"}], [7, 4, 2, 1]},
・・・

290:デフォルトの名無しさん
22/01/20 19:05:30.69 Ty/TufmK.net
分数も対応(数字4つで129/8)
iex(102)> Make10.run(4, {129,8})
[
{[{{129, 8}, "((1/8)+(7+9))"}], [9, 7, 8, 1]},
{[{{129, 8}, "(((1/8)+7)+9)"}], [9, 7, 8, 1]},
{[{{129, 8}, "((1/8)+(9+7))"}], [7, 9, 8, 1]},
{[{{129, 8}, "(((1/8)+9)+7)"}], [7, 9, 8, 1]},
{[{{129, 8}, "((3*5)+(9/8))"}], [8, 9, 5, 3]},
{[{{129, 8}, "(3*(6-(5/8)))"}], [8, 5, 6, 3]},
{[{{129, 8}, "((5*3)+(9/8))"}], [8, 9, 3, 5]},
{[{{129, 8}, "((6-(5/8))*3)"}], [3, 8, 5, 6]},
{[{{129, 8}, "(7+((1/8)+9))"}], [9, 8, 1, 7]},
{[{{129, 8}, "((7+(1/8))+9)"}], [9, 8, 1, 7]},
{[{{129, 8}, "(7+(9+(1/8)))"}], [8, 1, 9, 7]},
{[{{129, 8}, "((7+9)+(1/8))"}], [8, 1, 9, 7]},
{[{{129, 8}, "(9+((1/8)+7))"}], [7, 8, 1, 9]},
{[{{129, 8}, "((9+(1/8))+7)"}], [7, 8, 1, 9]},
{[{{129, 8}, "(9+(7+(1/8)))"}], [8, 1, 7, 9]},
{[{{129, 8}, "((9+7)+(1/8))"}], [8, 1, 7, 9]},
{[{{129, 8}, "((9/8)+(3*5))"}], [5, 3, 8, 9]},
{[{{129, 8}, "((9/8)+(5*3))"}], [3, 5, 8, 9]}
]

291:デフォルトの名無しさん
22/01/20 19:13:42.14 Ty/TufmK.net
Prologで書いたら楽そうなところはなかったw

292:デフォルトの名無しさん
22/01/20 19:54:16.86 Ty/TufmK.net
ちなみにeval使わず分数計算自前だよ
Elixirも楽しい!

293:デフォルトの名無しさん
22/02/03 03:27:48.02 5caWIEV6.net
Prologって簡単な深さ優先・探索列挙はともかく動的に細かな探索の制御をしようと思うと途端に面倒になるからな
他の言語で書いた方が小回りきくわ、ってなる
実用上、組み合わせの少ない練習問題的な全解探索にしか使えないゆえん

294:デフォルトの名無しさん
22/02/03 10:21:28.73 lrjvvrdU.net
スッキリ書ける俺々プリプロセッサわんさかありそう

295:デフォルトの名無しさん
22/05/16 08:48:09.42 fgDPgjMn.net
Mbは死んだか


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch