選択肢が4つでてくる問題が10問でてきて
8問以上正解すればクリアとかどうやって実装するの?
探検
関数型言語でフラグ管理をする方法
■ このスレッドは過去ログ倉庫に格納されています
2018/10/30(火) 21:17:26.98ID:ZgZ/9CmG
2018/11/03(土) 18:42:16.18ID:mzN5JvuB
最近Haskell書いてないから練習問題にするか
48デフォルトの名無しさん
2018/11/03(土) 18:49:17.75ID:rSl2Ac3O それでいて低学歴知恵遅れの自覚がないからな
2018/11/03(土) 19:42:43.36ID:UfWv76uW
>>31
普通xorつかうだろ
普通xorつかうだろ
2018/11/03(土) 19:44:09.65ID:UfWv76uW
>>46
30年前にbasicでWindowシステム作ってたぞ
30年前にbasicでWindowシステム作ってたぞ
51デフォルトの名無しさん
2018/11/03(土) 20:04:46.88ID:AAuGyX2A >>42
ほらよ。
main = qa [] q >>= return.(zip a) >>=
return.(map (\(x,y) -> check x y)) >>=
return.(trueSum 0) >>= judgment
qa ns [] = return ns
qa ns (x:xs)= putStr x >> getChar >>=
(\c -> print c >> qa (ns ++ [c]) xs)
check a = (a==)
judgment n |n >= 8 = putStrLn "You Win!!"
judgment _ = putStrLn "You Lose..."
trueSum n [] = n
trueSum n (True:xs) = trueSum (n + 1) xs
trueSum n (False:xs) = trueSum n xs
q = ["Q1","Q2","Q3","Q4","Q5","Q6","Q7","Q8","Q9","Q10"]
a = "1234123412"
do形式にはそっちで勝手に直してね。(関数型っぽくなくて嫌いなんだ)
久々だったから関数脳が腐りかけてた。
ほらよ。
main = qa [] q >>= return.(zip a) >>=
return.(map (\(x,y) -> check x y)) >>=
return.(trueSum 0) >>= judgment
qa ns [] = return ns
qa ns (x:xs)= putStr x >> getChar >>=
(\c -> print c >> qa (ns ++ [c]) xs)
check a = (a==)
judgment n |n >= 8 = putStrLn "You Win!!"
judgment _ = putStrLn "You Lose..."
trueSum n [] = n
trueSum n (True:xs) = trueSum (n + 1) xs
trueSum n (False:xs) = trueSum n xs
q = ["Q1","Q2","Q3","Q4","Q5","Q6","Q7","Q8","Q9","Q10"]
a = "1234123412"
do形式にはそっちで勝手に直してね。(関数型っぽくなくて嫌いなんだ)
久々だったから関数脳が腐りかけてた。
2018/11/03(土) 21:21:05.68ID:ugiNdMW1
53デフォルトの名無しさん
2018/11/04(日) 10:24:11.76ID:gXTKjRIr Rubyならこんな感じ。
適当に関数型に変えてくれ。
def aaa(remain, target, ok)
p tmp = rand > 0.5
ok += 1 if tmp
return true if ok >= target
if remain + ok < target
return false
else
return aaa(remain - 1, target, ok)
end
end
remain = 10
target = 8
ok = 0
p ['result =', aaa(remain, target, ok)]
適当に関数型に変えてくれ。
def aaa(remain, target, ok)
p tmp = rand > 0.5
ok += 1 if tmp
return true if ok >= target
if remain + ok < target
return false
else
return aaa(remain - 1, target, ok)
end
end
remain = 10
target = 8
ok = 0
p ['result =', aaa(remain, target, ok)]
2018/11/04(日) 11:07:00.38ID:Nn4ZdlZB
>>53
なんかキモい
def aaa(remain, target, ok)
return false if remain.zero?
return true if ok >= target
p ans = rand > 0.5
aaa(remain - 1, target, ok + (ans ? 1 : 0))
end
remain = 10
target = 8
ok = 0
p ['result =', aaa(remain, target, ok)]
なんかキモい
def aaa(remain, target, ok)
return false if remain.zero?
return true if ok >= target
p ans = rand > 0.5
aaa(remain - 1, target, ok + (ans ? 1 : 0))
end
remain = 10
target = 8
ok = 0
p ['result =', aaa(remain, target, ok)]
2018/11/04(日) 11:09:26.81ID:Nn4ZdlZB
return falseの条件を変えて途中で諦めたほうが良いか
56デフォルトの名無しさん
2018/11/04(日) 11:25:03.38ID:pidkuN2F >>51
無駄なコード減らして、解答リストに1〜4以外の文字が入ってたら(あえて)実行時エラーで終了するようにしてみた。
main = elecheck a >> getcheck [] d >>= judgment.trueSum
-- Input char and check anser.
getcheck ns [] = return ns
getcheck ns ((x,y):xs)= putStr x >> getChar >>=
\c -> print c >> getcheck ((y == c):ns) xs
judgment n |n >= 8 = putStrLn "You Win!!"
judgment _ = putStrLn "You Lose..."
trueSum = length.(filter (==True))
-- Check anser array in 1..4 number?
elecheck [] = return ()
elecheck (e:es) |(('1' <= e) && ('4' >= e)) = elecheck es
d = zip q a
q = ["Q1","Q2","Q3","Q4","Q5","Q6","Q7","Q8","Q9","Q10"]
a = "1234123412"
無駄なコード減らして、解答リストに1〜4以外の文字が入ってたら(あえて)実行時エラーで終了するようにしてみた。
main = elecheck a >> getcheck [] d >>= judgment.trueSum
-- Input char and check anser.
getcheck ns [] = return ns
getcheck ns ((x,y):xs)= putStr x >> getChar >>=
\c -> print c >> getcheck ((y == c):ns) xs
judgment n |n >= 8 = putStrLn "You Win!!"
judgment _ = putStrLn "You Lose..."
trueSum = length.(filter (==True))
-- Check anser array in 1..4 number?
elecheck [] = return ()
elecheck (e:es) |(('1' <= e) && ('4' >= e)) = elecheck es
d = zip q a
q = ["Q1","Q2","Q3","Q4","Q5","Q6","Q7","Q8","Q9","Q10"]
a = "1234123412"
57デフォルトの名無しさん
2018/11/04(日) 11:25:48.26ID:pidkuN2F そのdo記法バージョン。
main = do
elecheck a
bs <- getcheck [] d
judgment $ trueSum bs
getcheck ns [] = return ns
getcheck ns ((x,y):xs)= do
putStr x
c <- getChar
print c
getcheck ((y == c):ns) xs
judgment n |n >= 8 = putStrLn "You Win!!"
judgment _ = putStrLn "You Lose..."
trueSum = length.(filter (==True))
elecheck [] = return ()
elecheck (e:es) |(('1' <= e) && ('4' >= e)) = elecheck es
d = zip q a
q = ["Q1","Q2","Q3","Q4","Q5","Q6","Q7","Q8","Q9","Q10"]
a = "1234123412"
main = do
elecheck a
bs <- getcheck [] d
judgment $ trueSum bs
getcheck ns [] = return ns
getcheck ns ((x,y):xs)= do
putStr x
c <- getChar
print c
getcheck ((y == c):ns) xs
judgment n |n >= 8 = putStrLn "You Win!!"
judgment _ = putStrLn "You Lose..."
trueSum = length.(filter (==True))
elecheck [] = return ()
elecheck (e:es) |(('1' <= e) && ('4' >= e)) = elecheck es
d = zip q a
q = ["Q1","Q2","Q3","Q4","Q5","Q6","Q7","Q8","Q9","Q10"]
a = "1234123412"
58デフォルトの名無しさん
2018/11/04(日) 11:27:53.10ID:pidkuN2F 途中で切れてたので再投稿。
main = do
elecheck a
bs <- getcheck [] d
judgment $ trueSum bs
getcheck ns [] = return ns
getcheck ns ((x,y):xs)= do
putStr x
c <- getChar
print c
getcheck ((y == c):ns) xs
judgment n |n >= 8 = putStrLn "You Win!!"
judgment _ = putStrLn "You Lose..."
trueSum = length.(filter (==True))
elecheck [] = return ()
elecheck (e:es) |(('1' <= e) && ('4' >= e)) = elecheck es
d = zip q a
q = ["Q1","Q2","Q3","Q4","Q5","Q6","Q7","Q8","Q9","Q10"]
a = "1234123412"
main = do
elecheck a
bs <- getcheck [] d
judgment $ trueSum bs
getcheck ns [] = return ns
getcheck ns ((x,y):xs)= do
putStr x
c <- getChar
print c
getcheck ((y == c):ns) xs
judgment n |n >= 8 = putStrLn "You Win!!"
judgment _ = putStrLn "You Lose..."
trueSum = length.(filter (==True))
elecheck [] = return ()
elecheck (e:es) |(('1' <= e) && ('4' >= e)) = elecheck es
d = zip q a
q = ["Q1","Q2","Q3","Q4","Q5","Q6","Q7","Q8","Q9","Q10"]
a = "1234123412"
59デフォルトの名無しさん
2018/11/04(日) 11:28:20.18ID:pidkuN2F trueSum = length.(filter (==True))
elecheck [] = return ()
elecheck (e:es) |(('1' <= e) && ('4' >= e)) = elecheck es
d = zip q a
q = ["Q1","Q2","Q3","Q4","Q5","Q6","Q7","Q8","Q9","Q10"]
a = "1234123412"
elecheck [] = return ()
elecheck (e:es) |(('1' <= e) && ('4' >= e)) = elecheck es
d = zip q a
q = ["Q1","Q2","Q3","Q4","Q5","Q6","Q7","Q8","Q9","Q10"]
a = "1234123412"
60デフォルトの名無しさん
2018/11/04(日) 15:31:56.65ID:95qKkVOL >>53
これは酷い。関数型でもなんでもない。
これは酷い。関数型でもなんでもない。
61デフォルトの名無しさん
2018/11/04(日) 18:52:23.37ID:pidkuN2F >>58-59 はiPadのRaskellで動かしたんだけど、PCだと上手く動かない。
(OSのバッファ機能とHaskellの遅延評価の悪い相乗効果)
ここでRWHの内容が活きてくるんだけど、答えは内緒。
(OSのバッファ機能とHaskellの遅延評価の悪い相乗効果)
ここでRWHの内容が活きてくるんだけど、答えは内緒。
2018/11/06(火) 23:35:47.99ID:ceG2/QGJ
一問ごとに正解なら1、不正解なら0を返す関数を書いて
10個足して8以上ならCドライブをフォーマット
でいいんじゃないの?
10個足して8以上ならCドライブをフォーマット
でいいんじゃないの?
2018/11/07(水) 15:22:06.59ID:CUx7JRn8
全部不正解でいいんじゃね
2018/11/07(水) 15:42:00.65ID:GvDQxrPA
Excelのワークシート関数だけで作ってみると
関数型言語でどう組めばいいかわかるよ!
わかるよ!
関数型言語でどう組めばいいかわかるよ!
わかるよ!
2018/11/07(水) 16:07:13.80ID:nS0pqjfr
ていうかそんならExcelでいいじゃねーかw
2018/11/07(水) 16:26:15.62ID:oTVd6hn3
お前らバカにするけどExcelってすげぇソフトだと思うよ俺は。
神エクセルが悪いだけ。
神エクセルが悪いだけ。
67デフォルトの名無しさん
2018/11/07(水) 16:31:43.44ID:h4FWJh3K68デフォルトの名無しさん
2018/11/11(日) 12:43:24.63ID:vUUak6BF2018/11/11(日) 12:47:18.53ID:SClia95W
>>68
ブラクラ
ブラクラ
2018/11/14(水) 01:25:26.63ID:nGPvCKDp
死亡フラグが立ってます
71デフォルトの名無しさん
2019/02/04(月) 22:16:29.13ID:fVmYxPyX2019/03/11(月) 15:26:25.67ID:DVt5Y0At
hoogle...英語しか出てこないや
73デフォルトの名無しさん
2019/04/13(土) 00:45:40.57ID:WaVEKotj >>71
datterのx.jsonファイルを見させていただきました
datterのx.jsonファイルを見させていただきました
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 [蚤の市★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★3 [蚤の市★]
- 【ド軍】山本由伸、WBC出場を決断!ドジャースが本人の意向を尊重、佐々木朗希はチームが故障歴を懸念で不参加 [鉄チーズ烏★]
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- 秋田内陸縦貫鉄道「列車が脱線、転覆」と通報 北秋田市、萱草駅付近 [蚤の市★]
- 本当は健康に悪いけど、腹筋割れてる女のエロさは異常
- 【画像】海外の寿司パーティー、レベチwwwwwwwwww [834922174]
- お前らってほんとに純正品?
- 中国人、超ド正論。「チベットやウイグルに住んでるのはチベット族やウイグル族だが、アイヌから奪った土地に住んでる日本人こそ侵略者」 [314039747]
- 喫煙しない鳥ってなーんだ?
- 玉木雄一郎「日本は労働時間が短すぎる!これが経済の足を引っ張っている。労働増・企業に投資減税・教育予算増、これで財政破綻回避 [256556981]
