[過去ログ] プログラミングのお題スレ Part15 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
401: 2019/09/10(火)23:20 ID:Ik1iUNRF(2/2) AAS
>>399
allButFirstとallButLastは簡単だけどjsは生き残ってるスクリプト言語にしては珍しく演算子使ったリスト同士の演算が用意されてないのでfnは>>377みたいにキレイに書けない。
const allButFirst = arr => arr.slice(1);
const allButLast = arr => arr.slice(0, -1);
const fn = arr => allButLast(arr).reduce((acc, v, i) => (acc[i] -= v, acc), allButFirst(arr));
fn([3,1,4,1,5,9,2,6,5]);
//=> [-2,3,-3,4,4,-7,4,-1]
402(2): 2019/09/11(水)00:10 ID:JxGfX2fh(1/2) AAS
>>400 Perl5
use feature say;
for (<DATA>) {
say map{ucfirst lc} /((?:\d_\d|[^_\s])+)/g;
}
__DATA__
snake_case
ODAI00_99_TEST
x_0_x
UpperCamelCase
省6
403(1): 2019/09/11(水)00:26 ID:JxGfX2fh(2/2) AAS
>>402 その例ではいいけど
Odai00_9_9Test
↓になっちまうな…
Odai00_99test
404: 2019/09/11(水)00:31 ID:TkJgDVYV(1/2) AAS
>>400
外部リンク:ideone.com
C++。オレ、馬鹿になってる〜。と苦しんでいた。
405: 2019/09/11(水)00:44 ID:hWizELa3(1/2) AAS
>>397
C++むずかしすぎワロタwwwww
406: 2019/09/11(水)00:47 ID:TkJgDVYV(2/2) AAS
C++とJSとの違いは大雑把に言って、使う型を先に決めるか後で決めるか。という程度だと思う。
オレ、自分の幸福度を上げるために、80行位で問題とくようにしている。
というか、手癖でそれくらいになる。
407: 2019/09/11(水)02:04 ID:hWizELa3(2/2) AAS
>>400 JavaScript
const fn = s => s.split`_`
.map(([first, ...rest]) => [first.toUpperCase(), rest.join``.toLowerCase()].join``)
.reduce((acc, word) => acc + (/[0-9]{2}/.test(acc[acc.length - 1] + word[0]) ? '_' : '') + word);
fn('snake_case');
//=> "SnakeCase"
fn('ODAI00_99_TEST');
//=> "Odai00_99Test"
fn('x_0_x');
//=> "X0X"
省2
408: 2019/09/11(水)02:47 ID:0/zUYWhl(1) AAS
>>400 Squeak Smalltalk
| fn |
fn := [:str |
| words |
words := str asLowercase subStrings: '_'.
words first capitalized , (words overlappingPairsCollect: [:x :y |
((x last isDigit and: [y first isDigit]) ifTrue: '_' ifFalse: '') , y capitalized
]) join
].
fn value: 'snake_case'. "=> 'SnakeCase' "
省4
409(1): 2019/09/11(水)06:02 ID:CEu0fvWD(1/2) AAS
>400 Ruby
f = -> s {s.split(/(?<=\D)_|_(?=\D)/).map(&:capitalize).join}
%w[
snake_case ODAI00_99_TEST x_0_x UpperCamelCase
].each{|s| puts '%s => %s' % [s, f[s]]}
# =>
snake_case => SnakeCase
ODAI00_99_TEST => Odai00_99Test
x_0_x => X0X
UpperCamelCase => Uppercamelcase
410: 2019/09/11(水)06:06 ID:CEu0fvWD(2/2) AAS
>>409 補足
puts f["Odai00_9_9Test'] # => Odai00_9_9test
411: 2019/09/11(水)12:54 ID:Alp4BtBi(1) AAS
>>400
perl5
外部リンク:paiza.io
412(14): 2019/09/11(水)21:23 ID:RlhjBlE6(1) AAS
お題:リストの奇数位置にある要素のみを含むリストを作れ
ただし、先頭要素を1番目と数える
[1, 2, 3, 4, 5]
↓
[1, 3, 5]
rust
外部リンク:ideone.com
octave
外部リンク:ideone.com
413(1): 2019/09/11(水)21:27 ID:C94vqLvq(1) AAS
>>400
UpperCamelCaseはそのまま返すべきだろう。
(と言う事で、1文字目が大文字かつ全文に’_’が無い場合は、(恐らくUpperCamelCaseだろうと期待して)そのまま返すようにした)
Haskell
import Data.Char
main = mapM_ (print.f) ["snake_case","ODAI00_99_TEST","x_0_x","UpperCamelCase","notupperCamelCase"]
省15
414(1): 2019/09/11(水)23:29 ID:sKkTHzOH(1/3) AAS
>>400 Perl5、>>402-403 の修正、>>413 のように UpperCamelCase など_を含まない文字列はそのまま返す
use feature say;
for(<DATA>) {
@a = split/(?<!\d)_|_(?!\d)|\s/;
say 1 == @a ? @a : map{ucfirst lc} @a;
}
__DATA__
snake_case
ODAI00_99_TEST
x_0_x
省13
415: 2019/09/11(水)23:34 ID:sKkTHzOH(2/3) AAS
>>414 ゴメン、実行結果貼り間違えた(下記のように最後のOdAi00_9_9TeSTはそのまま出る)
~ $ perl 15_400.pl
SnakeCase
Odai00_99Test
X0X
UpperCamelCase
LocalVvar
LavelStyle
OdAi00_9_9TeST
416: 2019/09/11(水)23:43 ID:sKkTHzOH(3/3) AAS
>>412 Perl5
@a = a..z;
@x = map{$_-1} grep{$_&1} 1..@a;
@b = @a[@x];
print "[@b]\n";
実行結果
~ $ perl 15_412.pl
[a c e g i k m o q s u w y]
417: 2019/09/12(木)00:37 ID:zD/2/X2z(1) AAS
>>412
common lisp
(loop for i in '(1 2 3 4 5) for j from 1 when (eql 1 (mod j 2)) collect i)
(1 3 5)
418: 2019/09/12(木)02:26 ID:IEWaKNAx(1) AAS
>>400
Kotlin
外部リンク:paiza.io
419(2): 2019/09/12(木)09:48 ID:XoEd0LBY(1) AAS
>>412 Ruby
p [1, 2, 3, 4, 5].each_slice(2).map(&:first)
# => [1, 3, 5]
420(1): 2019/09/12(木)11:37 ID:Cxpf63qu(1) AAS
>>412 JavaScript
[1, 2, 3, 4, 5].filter((val, idx) => (idx + 1) % 2)
//=> [1, 3, 5]
421: 2019/09/12(木)18:13 ID:sKYe7PWn(1) AAS
>>412
Kotlin
外部リンク:paiza.io
422: 2019/09/12(木)18:34 ID:u0+zztnJ(1) AAS
>>412
外部リンク:ideone.com
C++。こんな感じで。
423: 2019/09/12(木)21:30 ID:+vUO8BYK(1) AAS
>>373 J
f =: 2 & (-~/\)
f 3 1 4 1 5 9 2 6 5
_2 3 _3 4 4 _7 4 _1
>>412 J
f =: _2 & ([/\)
f 1 2 3 4 5
1 3 5
424: 2019/09/12(木)21:33 ID:cqw0/uFd(1) AAS
さすがJ
サッパリ分からん
425: 2019/09/13(金)00:40 ID:6zSQdjjj(1) AAS
>>412
せめて、リストの中身は順番と関係無い内容の方が。。。
(例えば"abcde"とか)
Haskell
main = (print.oddlist) [1..5]
oddlist xs = [x | (x,y) <- zip xs [1..], odd y]
426(2): 2019/09/13(金)02:03 ID:qdoB8RTo(1) AAS
お題:辞書型クリプタを実装せよ。
私の実装: 外部リンク:ideone.com
貴方はどう書く?
427(1): 2019/09/13(金)13:13 ID:zfsxzWX8(1) AAS
>>412 Tcl
set x {1 2 3 4 5}
set r {}
foreach {a b} $x {set r [concat $r $a]}
puts $r
実行結果
1 3 5
428: 2019/09/13(金)21:31 ID:5n7mddvT(1) AAS
>>427
> foreach {a b}
こんなオサレな書き方で二個処理できるのすごい
429(1): 2019/09/13(金)21:37 ID:sQZEDK+j(1) AAS
tcl/tkで「tk部分ははいいがtclがクソ」みたいなのよく見た気がするんだけど、あれどういうとこが根拠なん?
430: 2019/09/14(土)04:14 ID:x5aQTHnU(1/2) AAS
お題: すべての人民は和平のために火急的に速やかに自己の復元を実現しなければならない。
431: 2019/09/14(土)04:28 ID:BS6VTuNp(1) AAS
>>412 Io
a := list(1, 2, 3, 4, 5)
a select(i, v, i isEven) println
実行結果
list(1, 3, 5)
432(2): 2019/09/14(土)07:49 ID:/8qdS/t9(1) AAS
>>419
>>420
スレ違いだし、関数型言語だけが再利用性が高いとは言わないけど、
仮にoddlistがリストに対して良く使われる処理なら
[1,2,3,4,5].oddlist()
とか使いたいよね?
確かRubyはそう言う基本クラスにメソッド追加出来たと思うけど(うろ覚え)、
それをライブラリにして公開したいとする。
省6
433: 2019/09/14(土)08:17 ID:G26P45sA(1/2) AAS
>>412 Python
print([ i for i in range(1,6,2) ])
# [1, 3, 5]
434: 2019/09/14(土)08:24 ID:Hd+E1riT(1) AAS
>>429
スレチだが教えてやる
数字が文字列として扱われて実行時にパースされるから馬鹿みたいに遅いことだ
435: 2019/09/14(土)08:30 ID:G26P45sA(2/2) AAS
>>412 Python a~f
print( ['a','b','c','d','e'][::2] )
# ['a', 'c', 'e']
436(1): 2019/09/14(土)19:11 ID:Rj/aIpzV(1) AAS
>>426
クリプタって何?
437(1): 2019/09/14(土)19:29 ID:daGZRaa0(1) AAS
ザラキ唱える人じゃないか
438: 2019/09/14(土)19:57 ID:oc39AgJX(1/3) AAS
>>436
Crypter.
Crypt + er.
439: 2019/09/14(土)20:22 ID:x5aQTHnU(2/2) AAS
>>437
それはクリフト
440: 2019/09/14(土)21:03 ID:KmV3vhTN(1) AAS
cryptoなんだからcryptorじゃないの?
441: 蟻人間 ◆T6xkBnTXz7B0 2019/09/14(土)21:19 ID:0f+SL6BM(1) AAS
それをゆうなら、encrypterの方が自然じゃん。
442: 2019/09/14(土)22:06 ID:31y0+jF3(1) AAS
でも、それをいうならの方が自然かも
443: 2019/09/14(土)22:21 ID:oc39AgJX(2/3) AAS
EnCrypterか。了解。
忘れたらごめんなさい。
444(1): 2019/09/14(土)22:23 ID:pQ8OW4Ak(1/2) AAS
EnCrypterはおかしい
Encryperでいい
445: 2019/09/14(土)22:23 ID:pQ8OW4Ak(2/2) AAS
tが抜けた
446: 2019/09/14(土)22:26 ID:hhxdRhHk(1) AAS
EmScriptEn
447: 2019/09/14(土)22:35 ID:oc39AgJX(3/3) AAS
>>444
なんか癖になってるんだ。
小学校から英語やってるわけじゃないからなぁ・・・。
448: 2019/09/14(土)23:35 ID:1m2PUwRG(1) AAS
>>432
釈迦に説法は空しいし恥ずかしいのでやめよう
どう考えてもおまいより>>419のほうが力量が上
議論の余地は無いので安心していい
449(1): 2019/09/15(日)10:23 ID:4T3I9hnw(1/2) AAS
>>426 Perl 5.30
# -*- coding: utf-8 -*-
no warnings 'experimental::signatures';
use feature qw(say signatures); # lexical_subs);
sub ReversibleHash_Encode($S, $C) {
@a = unpack 'C*', $S;
$l = @c = split '', $C;
my $o; ++$o while $l**$o < 256; #my $o = 1 + log(256)/log $l;
use integer;
my sub _enc($i) { join '', reverse map{($i, $m) = ($i/$l, $i%$l); $c[$m]} 1..$o }
省19
450: 2019/09/15(日)10:37 ID:Pt8t6mL1(1) AAS
zipとunzip関数があるからそれで偶数と奇数に分ければいい
451: 2019/09/15(日)11:42 ID:4T3I9hnw(2/2) AAS
>>412 Prl5 (≦5.28)、配列の添字を0始まり以外にする$[ (array_base feature)を使用
$[ = 1;
@a = a..z;
@x = grep{$_ & 1} 1..@a;
@b = @a[@x];
print "@b\n";
実行結果
~ $ perl 15_412_array_base.pl
a c e g i k m o q s u w y
※5.12〜5.28では$[は非推奨になり、設定すると
省2
452: 2019/09/15(日)15:11 ID:G44yhCx+(1) AAS
>>412 R
要素が 奇数個だとワーニングが出ちゃうけど
a<-1:9
print(matrix(a,2)[1,])
453: 2019/09/15(日)15:41 ID:5s85lzPu(1) AAS
鰐んぐ
魚にんぐ
454: 2019/09/15(日)16:31 ID:vhYJbDpr(1) AAS
>>449
実行はしてないが、成果については「GJ!!」だ!
455(1): 2019/09/16(月)04:35 ID:NOoJUh0d(1/2) AAS
お題: 文字列が渡されるので文字vの左隣の文字を小文字、右隣の文字を大文字に変換しなさい
456(1): 2019/09/16(月)06:10 ID:VWND3fAL(1) AAS
>>455
"avbvc" の結果を教えてくれ
457(1): 2019/09/16(月)08:35 ID:NOoJUh0d(2/2) AAS
>>456
その場合はvに挟まれた文字をxに変換してください
458: 2019/09/16(月)08:42 ID:3bKCxc1X(1) AAS
>>457
"avvb" の結果を教えてくれ
459: 2019/09/16(月)11:06 ID:uJI/7eR2(1) AAS
頭悪そうなお題はパスで
460(6): 2019/09/16(月)15:26 ID:eLMc9ESO(1) AAS
お題:1から100までの自然数がある。ランダムに30個抜き出せ。
461: 2019/09/16(月)15:30 ID:4Q9Ti1cA(1) AAS
>>460 Ruby
p [*1..100].sample(30)
# => [13, 29, 96, 79, 78, 17, 89, 88, 69, 51, 44, 16, 54, 62,
47, 19, 45, 26, 43, 40, 91, 32, 30, 86, 84, 85, 15, 6, 41, 95]
462: 2019/09/16(月)16:08 ID:ShPpQTCq(1) AAS
>>460
Kotlin script
println((1..100).toMutableList().apply {shuffle()}.slice(0..29).joinToString())
463: 2019/09/16(月)16:53 ID:P3J/MfSa(1) AAS
>>460 Perl5、※選択に重複がないようにした
@a = 1..100;
use List::Util shuffle;
@b = (shuffle @a)[0..29];
print "@b\n";
実行結果
~ $ perl 15_460.pl
64 90 99 41 46 11 25 23 2 12 43 42 24 96 59 44 19 7 92 47 15 86 84 68 13 100 76 34 87 9
464(1): 2019/09/16(月)16:59 ID:ZgnCsjLO(1) AAS
>>460 J
(30?100) { >: i. 100
465: 2019/09/16(月)17:36 ID:enU8we0d(1) AAS
>>464
なるほど全然わからん
466: 2019/09/16(月)20:23 ID:LKlzCOg4(1) AAS
>>460 Pharo/Squeak Smalltalk
(1 to: 100) asArray shuffled first: 30
467(11): 2019/09/17(火)17:37 ID:IoM9hprN(1/2) AAS
プログラム言語標準の文字列(e.g. java.lang.String) が与えられ、ランレングス圧縮した結果をプログラム言語標準の文字列で返す関数を作成してください。ただし、入力に数字が入っていた場合のケースは考慮しなくても構いません。
テストケース(関数名 = f)
f("あいうえお") -> "あいうえお"
f("ああいいうう") -> "あ2い2う2"
f("あいうあいう") -> "あいうあいう"
468: 2019/09/17(火)18:15 ID:kyKgfAv0(1) AAS
あうあうあー -> あうあうあー
ああああ -> あ4
469: 2019/09/17(火)18:37 ID:IoM9hprN(2/2) AAS
そゆこと
470: 2019/09/17(火)19:42 ID:N7hzq5cx(1) AAS
python に あ2い2う2
のようにカウンティング結果を含んだリストを返すライブラリが
はいっていたな
471: 2019/09/17(火)21:40 ID:nuFS/S7T(1) AAS
>>467
haskellだよー
join.map ((:).head <*> (bool "".show.length <*> (1 <).length)).group
472: 2019/09/17(火)21:47 ID:s7WBnLNZ(1) AAS
>>467 JavaScript
const f = s => [...s]
.reduce((acc, ch) => {
const [lastCh, n = 1] = acc.pop() || [];
if (!lastCh) return [[ch]];
if (lastCh == ch) {
return [...acc, [lastCh, n + 1]];
} else {
return [...acc, [lastCh, n == 1 ? '' : n], [ch]];
}
省3
473: 2019/09/17(火)23:32 ID:htBCID9n(1/2) AAS
>>467 Perl5
use utf8;
binmode STDOUT, ':encoding(utf-8)';
for (qw{あいうえお ああいいうう あいうあいう あうあうあー ああああ}) {
my $s;
while (/((.)\g-1*)/g) {
$s .= $2;
$s .= $l if 1 < ($l = length $1);
}
print "$s\n";
省8
474: 2019/09/17(火)23:58 ID:htBCID9n(2/2) AAS
>>467 Perl5、しくった、お題は「関数を作れ」だった…orz
use utf8;
binmode STDOUT, ':encoding(utf-8)';
sub f {
my $s;
while (/((.)\g-1*)/g) {
$s .= $2;
$s .= $l if 1 < ($l = length $1);
}
$s
省10
475: 2019/09/18(水)10:00 ID:Qm7jF2Kv(1/2) AAS
>>467 Ruby
f = -> s {s.gsub(/(.)\1+/){[$1, $&.size].join}}
%w[あいうえお ああいいうう あいうあいう あうあうあー ああああ].each{|s| puts [s, f[s]].join(' => ')}
# =>
あいうえお => あいうえお
ああいいうう => あ2い2う2
あいうあいう => あいうあいう
あうあうあー => あうあうあー
ああああ => あ4
476: 2019/09/18(水)10:37 ID:Qm7jF2Kv(2/2) AAS
AA省
477: 2019/09/18(水)15:45 ID:GIOjMe2C(1/4) AAS
>>467
外部リンク:ideone.com
C++。いい感じにかけた。
478(1): 2019/09/18(水)17:30 ID:quy23QLp(1) AAS
むずかし過ぎワロタwww
俺にC++は絶対ムリwwwww
479: 2019/09/18(水)17:40 ID:GIOjMe2C(2/4) AAS
>>478
自分の福祉のために圧迫しない程度に冗長に書いてるけど、ショートコーディングももちろんできるよ。
記憶力と直感と若干の経験で書いている。
480(1): 2019/09/18(水)19:34 ID:Dukdxvvo(1/2) AAS
完成品はないけどなw
481: 2019/09/18(水)19:48 ID:GIOjMe2C(3/4) AAS
>>480
ウインドウズのアプリっぽいの一個位は作ったことあるよ。
482(1): 2019/09/18(水)19:56 ID:Dukdxvvo(2/2) AAS
はいはいいつもの
483(1): 2019/09/18(水)20:22 ID:GIOjMe2C(4/4) AAS
>>482
ボット認定していい?
484: 2019/09/18(水)22:47 ID:Zy9clRCR(1) AAS
>>483
bot(だと自分で思ってる)相手にレスしちゃう男の人なんて……
485(2): 蟻人間 ◆T6xkBnTXz7B0 2019/09/19(木)03:17 ID:fzYUHnaE(1/3) AAS
お題: 明日の東京都の天気を教えてくれる「お天気ねえさん」を実装せよ。
外部リンク:www.drk7.jp
ここのXMLデータを参考に、明日の東京都の天気を優しく説明してくれるような説明テキストを生成せよ。
例) 明日XX月YY日の東京都の天気は○○です。○○注意報が出ています。傘を忘れないでね。
486: 蟻人間 ◆T6xkBnTXz7B0 2019/09/19(木)03:40 ID:fzYUHnaE(2/3) AAS
ある種のデータは石油のように重要だから、データ自動生成は条件が揃えばお金儲けにつながる。まあ、とことんチャレンジしたまえ。
487: 2019/09/19(木)04:53 ID:kXMoSLFb(1) AAS
>>485
sh と perl5
外部リンク:pastebin.com
画像リンク[png]:i.imgur.com
colorlizerの中がperl入りで
見やすくするユーティリティー
488(1): 2019/09/19(木)20:26 ID:tW2U1Dga(1) AAS
google の検索結果を 10 づつ合計 1000 件ダウンロードするプログラム
489(1): さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/09/19(木)20:38 ID:fzYUHnaE(3/3) AAS
>>488
ボットはあかん
490: 2019/09/19(木)21:01 ID:Iq+eqHsU(1) AAS
>>467 Lua
マルチバイト文字には対応していない。
function f(s)
local r,c="",1
for i=1,#s do
if s:sub(i,i)==s:sub(i+1,i+1) then
c=c+1
else
r=r..s:sub(i,i)
if c>1 then
省10
491(1): 2019/09/19(木)21:11 ID:VNRPdI7o(1) AAS
>>460 octave
外部リンク:ideone.com
>>467 ruby
外部リンク:ideone.com
492: 2019/09/19(木)21:20 ID:7Zlc7qce(1) AAS
>>467
perl5
デバッガが日本語で化けるんで英語だけ
print("aabbccddd" =~ s{ (.) \1* }{ "$1" . length"$&" }xgre);
a2b2c2d3
493: 2019/09/20(金)00:35 ID:brDhMnbX(1/3) AAS
>>485 Perl5 (LWP::UserAgent、LWP::Protocol::https、XML::Simple のinstallしてあるPCで)
# -*- coding: utf-8 -*-
use utf8; use Data::Dump 'dump'; use Data::Dumper;
binmode STDOUT, ':encoding(utf-8)';
use feature say;
$pno = 13; # ex) 01:北海道, 13:東京, 20:長野, 47:沖縄
$url = "外部リンク:www.drk7.jp
require LWP::UserAgent; # with LWP::Protocol::https
$ua = LWP::UserAgent->new;
$ua->agent('Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko');
省19
494: 2019/09/20(金)00:38 ID:brDhMnbX(2/3) AAS
AA省
495: 2019/09/20(金)01:09 ID:brDhMnbX(3/3) AAS
お天気おねぃさんとは、ほど遠いなコリャ…
496(7): 2019/09/20(金)04:34 ID:vpcMUgg5(1) AAS
お題
以下の、列区切りが空白である入力文字列を、
最後の列の数値が、小さい順番で、行を並べ替えよ
答えは、上下が反転する
a b c 44
x y 33
z 22
11
497: 2019/09/20(金)07:37 ID:ZVVuMGcz(1) AAS
>>496
cat text
a b c 44
x y 33
z 22
11
cat text | perl -pe 's/.*? \s? (\d+)/$1:$&/xgm' | sort -n | perl -pe 's/^\d+://'
11
z 22
x y 33
省1
498: 2019/09/20(金)08:14 ID:ImrTQZdo(1) AAS
>>467
Common Lisp 外部リンク:ideone.com
Perl 外部リンク:ideone.com
JavaScript 外部リンク:ideone.com
499: 2019/09/20(金)09:52 ID:PYkAN+VQ(1) AAS
>>496 Ruby
puts <<~EOS.each_line.sort_by{|s| s[/\S+\n?/].to_i}
a b c 44
x y 33
z 22
11
EOS
# =>
11
z 22
省2
500(1): 2019/09/20(金)13:59 ID:fZRbtgUM(1) AAS
>>489
合法的? にやるにはどうすればいいの?
上下前次1-新書関写板覧索設栞歴
あと 502 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.053s