関数型プログラミング言語Haskell Part34 (692レス)
上下前次1-新
231: デフォルトの名無しさん [sage] 2023/09/04(月) 14:41:20.09 ID:FcZAE9nJ(1) AAS
haskellは廃れてきてるな、悲しい
スペースリーク対応は難しすぎるしライブラリ類も最新のghcだと使えなかったりしてなんか
実用的な言語じゃないなって思う
xmonadなんかはほとんどBangPatternだよね
そういえば自動でstrictにする拡張が2個ぐらいあったけど追ってないどうなの
232: デフォルトの名無しさん [] 2023/09/16(土) 21:21:50.35 ID:6682wM15(1/3) AAS
数学の集合は普通順番を付けて書くと思うのですが(添字でアクセスできたほうが便利)
なぜ多くの言語では集合に順番がないのでしょうか?
233: デフォルトの名無しさん [] 2023/09/16(土) 21:25:49.38 ID:6682wM15(2/3) AAS
等価判定演算子では順番を問わないが、
記法としては順番によるインデックスアクセスもできる、が便利だと思うのですが
一番基礎的な集合の一つである自然数が順番を重視して扱うように大半の集合は順序を整頓して書かないと実用上不便ではないでしょうか?
234: デフォルトの名無しさん [sage] 2023/09/16(土) 23:06:28.20 ID:XG1/1lYn(1) AAS
順番がないやつと順番があるやつは
なぜ対等な関係ではなく前者が一般的で後者が特殊だと言われるのか?
逆に、複素数はなんで虚部があるやつが一般的で虚部がないやつが特殊なのか?
235: デフォルトの名無しさん [] 2023/09/16(土) 23:13:33.62 ID:6682wM15(3/3) AAS
数学的概念として等価だったりどちらが特殊とか言えないのは納得しています
ただ、集合は順序を維持して記述するようにしたほうが明らかに認知的負荷が少なく、数学的記法でも多くの場合でそうなっていると思うのですが、
多くの言語で組み込み型の集合がそうなっていないのはどのような思想によるものでしょうか?という質問です
236: デフォルトの名無しさん [sage] 2023/09/17(日) 02:24:17.53 ID:yNwKlKA6(1) AAS
データ型としての起源としては
素集合データ構造から始まっているようなので
素である(disjoint)ことがまず要求されて
他に集合という名前が使われていないことから
素で非順序的なデータ型のことを集合型と呼ぶことになった模様
237: デフォルトの名無しさん [sage] 2023/09/17(日) 02:39:39.55 ID:XqeO/FaW(1) AAS
組み込み型とユーザー定義型の区別をなくす思想はある
最も正しいことを実現する思想ではなくミスをした場合の罪が軽くなる
238: デフォルトの名無しさん [sage] 2023/09/17(日) 23:47:13.96 ID:70jB6wMR(1) AAS
初心者は++を使うけどなれたら<>を使ってる人が多い気がする
SemiGroupであれさえすれば使える<>を使った方が汎用的にかけるからかな
239: デフォルトの名無しさん [sage] 2023/09/18(月) 10:00:00.93 ID:E5yF50jH(1) AAS
俗説が廃れるのは「時代が変われば正しさが変わるから」ではありません
俗説が正解だった時代などない
240: デフォルトの名無しさん [sage] 2023/09/19(火) 19:53:05.75 ID:QCYT99dv(1/3) AAS
unixのtouchを実現したいのですが
{-# LANGUAGE OverloadedStrings #-}
import System.Posix.Files.ByteString
main = do
touchFile "hoge.txt"
touch.hs: hoge.txt: touchFile: does not exist (No such file or directory)
というエラーがでます
ないのは当たり前でtouchで作ろうとしてるのですがバグがあるのでしょうか?
241: デフォルトの名無しさん [sage] 2023/09/19(火) 19:54:00.31 ID:QCYT99dv(2/3) AAS
unixのtouchを実現したいのですが
{-# LANGUAGE OverloadedStrings #-}
import System.Posix.Files.ByteString
main = do
touchFile "hoge.txt"
touch.hs: hoge.txt: touchFile: does not exist (No such file or directory)
というエラーがでます
ないのは当たり前でtouchで作ろうとしてるのですがバグがあるのでしょうか?
242: デフォルトの名無しさん [sage] 2023/09/19(火) 19:58:16.28 ID:QCYT99dv(3/3) AAS
すみません、書き込むボタンの反応がなかったので連投になってしまいました
243: デフォルトの名無しさん [sage] 2023/09/19(火) 20:14:24.31 ID:a563RtWW(1/3) AAS
touchの本来の意味を考えれば、まあできなくてもそういうもんだなと思ふ
244: デフォルトの名無しさん [sage] 2023/09/19(火) 20:14:45.64 ID:a563RtWW(2/3) AAS
touchの本来の意味を考えれば、まあできなくてもそういうもんだなと思ふ
245: デフォルトの名無しさん [sage] 2023/09/19(火) 20:18:27.88 ID:a563RtWW(3/3) AAS
ありゃ俺も連投しちまったすまん
なんか5ch重いっぽいね
246(1): デフォルトの名無しさん [sage] 2023/09/20(水) 08:38:40.03 ID:I55f6i4N(1/2) AAS
for i in * ; do touch anotherdir/$i ; done
247: デフォルトの名無しさん [] 2023/09/20(水) 08:53:25.46 ID:I55f6i4N(2/2) AAS
>>246(bash)でお茶を濁した
perlが明日消えてなくなるらしいのでHaskellをPerlの代わりに使おうと思う
正規表現とグロブ、ファイル入出力はできた
他に何かあるかな
248(1): デフォルトの名無しさん [sage] 2023/09/22(金) 12:15:07.45 ID:NjV4q9P3(1/2) AAS
数値のリストl=[1,10,3]みたいなのを
1 10 3と出力したい。末尾には空白はあってはならないとする
最初
putStrLn $ intersperse ' ' $ foldl' (\acc x -> acc ++ show x) [] l
こんなのを考えたのだが10も1 0と分解されてしまった
しかたなく泥臭いこんなコードを書いたのだがもっといい方法はないだろうか
mp [] = return ()
mp [x] = putStrLn $ show x
mp (x:xs) = do
putStr $ show x ++ " "
mp xs
249: デフォルトの名無しさん [sage] 2023/09/22(金) 13:06:36.18 ID:8SLDLfd5(1) AAS
外部リンク[html]:jutememo.blogspot.com
250: デフォルトの名無しさん [sage] 2023/09/22(金) 14:01:02.50 ID:NjV4q9P3(2/2) AAS
putStrLn $ intercalate " " $ map show l
これでいけました
251: デフォルトの名無しさん [sage] 2023/09/22(金) 14:01:12.58 ID:W8j4O+ex(1) AAS
泥臭いだけで罪があるかのように日常的に刷りこまれてるから
本当の有罪確定したやつは絶対許してもらえないよな
そりゃそうだよな
252: デフォルトの名無しさん [sage] 2023/09/27(水) 15:30:51.70 ID:9Ywamwi5(1) AAS
{-# LANGUAGE BinaryLiterals #-}
この拡張をいれても
let t = read "0x111" :: Int -- 16進数にパースできる 273
let s = read "0b111" :: Int -- 2進数にはパースできない
微妙に不便だ
253: デフォルトの名無しさん [sage] 2023/09/27(水) 17:59:16.99 ID:k7PwLxD8(1) AAS
readが定義されたモジュールは別のLANGUAGEってこと?
254(1): デフォルトの名無しさん [sage] 2023/10/11(水) 15:16:15.28 ID:1pnnvG+R(1/2) AAS
groupBy (\a b -> snd a == snd b)
これを括弧を使わずにかけますか
groupBy ((==)<$>snd<*>snd)だと(a,b)->Boolとなって(a,b)->(c,d)->Boolとは型があいませんでした
255: デフォルトの名無しさん [sage] 2023/10/11(水) 17:39:54.48 ID:Fikp0OWy(1) AAS
>>254
import Data.Function
groupBy ((==) `on` snd)
結局かっこは使うのだけど、これがあなたの求めるものでしょうか
上下前次1-新書関写板覧索設栞歴
あと 437 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.022s