関数型プログラミング言語Haskell Part34 (667レス)
上
下
前
次
1-
新
413
(1)
: 2024/10/02(水)20:27
ID:AFS53MaU(4/6)
AA×
>>407
[240|
320
|
480
|
600
|
原寸
|
JPG
|
べ
|
レス栞
|
レス消
]
413: [] 2024/10/02(水) 20:27:37.99 ID:AFS53MaU >>407 圏論の自然変換だと文字コード前提じゃないので、[0..25] = ['a'..'z'] = ['A'..'Z']ってする。 んで、大文字と小文字は同じ文字の圏、[0..25]は自然数の圏とする。 lCharToInt c = (length.takeWhile (c /=)) ['a'..'z'] -- 小文字からIntへの変換(関手) uCharToInt c = (length.takeWhile (c /=)) ['A'..'Z'] -- 大文字からIntへの変換(関手) toLChar = (['a'..'z']!!) -- Intから小文字への変換(関手) toUChar = (['A'..'Z']!!) -- Intから大文字への変換(関手) mytoLower = toLChar.uCharToInt -- 大文字から小文字への変換(自然変換) mytoUpper = toUChar.lCharToInt -- 小文字から大文字への変換(自然変換) でも、普通のプログラミング言語のtoLower, toUpperも、Char型を圏とみれば同じ。 可換にするのは面倒くさい上に効率悪いけど、そういう関手を作ろうと思えば作れる。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/413
圏論の自然変換だと文字コード前提じゃないので ってする んで大文字と小文字は同じ文字の圏は自然数の圏とする 小文字からへの変換関手 大文字からへの変換関手 から小文字への変換関手 から大文字への変換関手 大文字から小文字への変換自然変換 小文字から大文字への変換自然変換 でも普通のプログラミング言語の も型を圏とみれば同じ 可換にするのは面倒くさい上に効率悪いけどそういう関手を作ろうと思えば作れる
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 254 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
ぬこの手
ぬこTOP
0.028s