プログラミング入門

プログラミング Programming

6156db98 anonymous 2015-10-05 14:27
今までjavaとJavaScriptしかまともに使ってなかったけど関数型言語に興味があるんでF#勉強して見ようかな

(それと古いスレッド引っ張り上げてきてごめんね)
1ac5e5d3 anonymous 2015-10-05 16:21
>>6156db98
lispでいいじゃん(ぉ
f7523944 anonymous 2015-10-05 19:27
既にJavaの基礎があるのならラムダや関数型インターフェースを勉強した方がいいかも。
F#よりは実用的だし、関数型プログラミングの考え方は身につく
5fce08be anonymous 2015-10-06 08:29
いろいろご意見ありがとうございます
ただせっかくなのでF#はじめました
とりあえず初心者まるだしのFizzbuzzをば

let fizzbuzz x =
  match(x%3,x%5) with
   |(0,0) -> "fizz buzz"
   |(0,_) -> "fizz"
   |(_,0) -> "buzz"
   |(_,_) -> string x

[1..100]
 |>List.map fizzbuzz
 |>List.map (printfn "%s");;
c432f487 anonymous 2015-10-06 15:51
>>99fb6418
実装してみました
入力がどうもうまくいかず
main 3 "1,1,2,3,3,3,2,1,2";;
のようになってしまいましたが自分の中ではうまくできたほうかなと
(List.groupBy もうまくいきませんでした)

let parse (x:string) =
 match System.Int32.TryParse(x) with
 |(true,int) -> int
 |_ -> 0

let main (max:int) (s:string) =
 let a = s.Split ','|>Seq.map parse
 let l =
  a
  |>Seq.fold (fun x y -> if (List.head x) = y then x else y::x) [(Seq.head a)]
  |>List.toSeq
  |>Seq.groupBy(fun x -> x)
  |>List.ofSeq
  |>List.sortBy fst
 if List.length l > max then printfn "入力エラー" else l|>List.iter (fun x -> printfn "%dは%dグループあります" (fst x) (Seq.length (snd x)));;
2fe24944 anonymous 2015-10-07 07:21
>>c432f487 です
きちんとした環境を整えた&自分の技術力が向上したのでかきなおしました
割とトラップ多めで手こずりましたがだんだん慣れてきた

open System
let main =
 printfn "何種類の整数を使いますか?"
 let max = parse (Console.ReadLine())
 printfn "1以上%d以下の整数を何個でも入力してください" max
 let l =
  Console.ReadLine().Split ','
  |>Seq.map parse
  |>Seq.fold (fun x y -> if (List.isEmpty x || List.head x <> y) then y::x else x) []
  |>Seq.groupBy(fun x -> x)
  |>Seq.sortBy fst
 if Seq.length l > max then printfn "入力エラー"
  else l|>Seq.iter (fun x -> printfn "%dは%dグループあります" (fst x) (Seq.length (snd x)));;
d1a4cb87 anonymous 2015-10-07 07:24
各種数列 もっといい実装もあるかもだけどいまはこんなもん

let printseq s = s|>Seq.take 10|>Seq.iter (printf "%A ")

(* 平方数 *)
seq { for i in 1 ..100  -> i * i }
|>printseq;;
(* フィボナッチ数列 *)
Seq.unfold (fun (a,b) -> Some(a+b, (b, a+b))) (1,1)
|>printseq;;

(*素数*)
let check x l=
 l|>List.filter (fun i -> x%i=0)|>List.isEmpty
seq { for i in 2 .. 1000 -> i}
|>Seq.fold(fun x y -> if(check y x) then y::x else x) [2;]
|>List.rev
|>printseq;;
c6296a05 anonymous 2015-10-08 11:48
コードは長くなるんでgithubのほうに乗せることにしました

>>d1a4cb87
こんな無駄のあるコードでも一瞬で終わるんで最近のはすげーなと思ってたけどチューニングしてみた
ちょっとだけ改良した素数v2
https://github.com/WhiteCat6142/lerning-fsharp/blob/master/day2.fs

で、一番感動したのがファイル読み込んで表示させるのが一行で終わったこと
Javaやってたからびっくりだわ
https://github.com/WhiteCat6142/lerning-fsharp/blob/master/day3.fs

題材に困っているんでできれば問題とか出してください
12e7e516 anonymous 2015-10-14 13:04
sakuをテキトーにgo言語に写経してみたが、コード行数にしてだいたい6400行→8000行、1.2倍くらい。
goってそこそこよく出来てるなぁ、と感じる。まだ、動かしてみてすらいないが。
24a93d5b anonymous 2015-10-16 01:26
>>12e7e516
とりま乙
Githubに上げてみてもらえたら、多人数でバグ取り協力できるかも
53583c71 anonymous 2015-10-16 07:29
>>24a93d5b
別スレでは出したが、一応。デバッグ中
https://github.com/shingetsu-gou/shingetsu-gou
a99a0fe0 anonymous 2015-10-16 09:47
>>53583c71
ポートは8010で2ch interfaceは最初から有効なんですね
initnode.txtの中身は変えたほうが良さそうです
2decc3ef anonymous 2015-10-16 10:22
>>a99a0fe0
ああ、sakuを動かしながらデバッグしてたので、とりあえずポート変えてるだけで深い意味はないです。
2ch interfaceもデバッグ用にONにしてるだけ。
最終的にはsakuと同じのほうがいいとは思います。
ただ、uPnPによるポート開放は、反対意見もあるとは思いますが、(運が良ければ)簡単に使えるようにできる、という意味で、
デフォルトONにしたい。

initnode.txtはsakuと同じなんですが、何か改善点ありますか?
64666db5 anonymous 2015-10-16 17:06
>>2decc3ef
initnode.txtに記載されたノードで生きてるのは上2つだけと思われます
下の3つは朔とwebブラウザの両方でエラーが返ってくるので、既に死んでるかと
15517c8b anonymous 2015-10-16 20:15
>>64666db5
下2つも行けたよ?
a4607051 anonymous 2015-10-16 20:39
>>15517c8b
うちは回線や端末を変えてみても下3つはダメでした・・・
P2Pネットワークは複雑ですね
c197fb71 anonymous 2015-11-05 11:10
・C言語
アセンブラ代替言語。とにかく実行スピードが早いが、今となっては貧弱な標準ライブラリはっきり言って苦痛以外の何者でもない。しかし、Segmentation Fault(Core dumped)というたった一文の呪文から発せられる脱力感と、その後の苦労を感じるまでは、ポインタという基本概念を理解したとは言えない。

・python
伝統ある安定したスクリプト言語。しかし、IDE等で{}書きの自動インデントになれていると、インデントによるブロック記述が苦痛。速度は遅い、と言われるがpypyという日本語で発音すると誤解されるpython互換言語は5倍早いらしい。

・java
伝統ある安定したコンパイル言語。一世風靡し、今も現役。ただVMを使うため、どうしてもメモリを食う。
速度は思っている以上に早いが、JITがかかるまで(特にすぐ終わるプログラムは)は遅いと感じる。標準ライブラリは今となってはクラシカルになってしまった。

・N88BASIC
古き良き言語。これを知る人類はオサーンと呼ばれる。彼らは昔この言語のみで、すべてが記述できると信じていた。
dc6d684c anonymous 2015-11-05 12:56
>>c197fb71
突然どうした?
bf9168e6 anonymous 2015-11-05 14:24
Rubyが無いだと・・・
8c2d02dc anonymous 2015-11-05 14:40
>>c197fb71
jsがないとはさすがオサーン
547e8614 anonymous 2015-11-15 13:35
サーバーサイド勉強中
9497938e anonymous 2015-12-04 10:47
Cの基礎しかやってないけどドットインストールでpython触ってみた
python3だとprintに括弧が要るらしく、そこで躓いた
3b9a1acd anonymous 2015-12-04 11:55
>>9497938e
python3と2では、結構違うので、サンプルコピペするときには気をつけたほうがいい。
特にstrの扱い
http://python.civic-apps.com/python3-bytes-str-convert/
d71bf02c anonymous 2015-12-04 14:05
>>3b9a1acd
unicodeの文字列にu付ける必要無いんですね
python3の日本語の資料が思ったより少ないので、変更点多いと手間掛かりそうです
e3d75467 anonymous 2016-01-30 21:05
参考まで。ざっくりした速度比較

https://benchmarksgame.alioth.debian.org/u64q/which-programs-are-fastest.html
784360c4 anonymous 2016-02-09 16:25
コンソールゲーム作ってみたい
CとBASIC以外では見た事ないんだけど、他の言語は向いてないのかな
0bd3dd00 anonymous 2016-02-09 18:22
https://github.com/JoelOtter/termloop
7ed2f172 anonymous 2016-02-13 18:26
geanyとかeclipseよりはシンプルだけど、これはこれで面倒だな・・・
nanoだと多少不便だしvim覚え直そうか
http://i.imgur.com/wAtuRtB.png
2592669a anonymous 2016-06-18 20:13
大学受験で言えば、「暗記科目で9割取れても数学や物理は3、4割しか取れないタチの悪い頭の弱い人」でもできる言語ってなに?
数学とかアルゴリズムとか一切無しでノベルゲーを作ってみたい
5a221407 anonymous 2016-06-19 00:21
>>2592669a
ゲーム用にはゲーム用の簡単に出来るプログラミング言語が幾つかあったはず
HSP・wolfrpgエディター あたりでどう
79ed4c08 anonymous 2016-06-19 00:35
>>2592669a
アルゴリズム無しというのはさすがにちょっと… なんとかツクールとかむかしなかったっけ。
d323cd07 anonymous 2016-06-19 00:47
>>2592669a
アルゴリズムって問題を解く手順書って意味だから、それを一切なしではプログラミングとは言えないと思う

おすすめはJavaScript
メジャーで簡単に始められて配布もしやすいから

ただ、ノベルゲーを作るのが一番の目的なら吉里吉里とか使うのが近道だよ
b2fd42c3 anonymous 2016-06-20 17:19
>>2592669a
html
f81c9816 anonymous 2016-08-15 15:41
先ず、誤解を解きます。
実はさ、プログラミングはそんなに難しい事ではなく、むしろある意味には楽しい事です。
勉強する前に、以上をよく覚えてなさいよ。

続く
934984d1 anonymous 2016-08-15 19:20
デバックは苦行なり
a06c586f anonymous 2016-08-15 19:53
「コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い 」-- Joseph Campbell
23b4e9c9 anonymous 2016-08-16 12:01
>>f81c9816
続きます。
プログラミングを勉強する同時に、英語の勉強もいいチャンスである。
オンライン辞書とか翻訳ツールとかどんどん使う。

あと、分からない部分はここで質問することもできます:
https://hinative.com/
とても便利だろ~

続く
36814b3d anonymous 2017-02-13 18:03
ここってgamedevスレないのか
或いはあったけど消えた?
1d43972f anonymous 2017-03-10 19:14
#!/usr/bin/env python
一行目にコレを入れると捗る事に気付いたPython初心者
Cとかなり違うんで覚えるのに時間掛かりそう
cfaf1f51 anonymous 2017-03-10 21:21
>>1d43972f
シェバングね
UNIX系では常識や
c54616e9 anonymous 2017-03-13 00:08
 Linux(UNIX)環境はWindowsだとコンパイラ通してバイナリにしないと動かないようなプログラムがテキストのままインタプリタやシェルの上で当たり前に動いているらしいね。
 正直羨ましいのが本音である一方、書店の入門書はグラフィックとか音楽を題材にしてなくてどう手を付ければ良いのかよく分からん。
 N-TYPEは作れてもR-TYPEはどうなんだろうって感じ。
50a31795 anonymous 2017-03-13 01:27
>>c54616e9
そんなことはない
shebang使えばインタプリタが必要なものを実行ファイルとしてOSに認識させられたりはするが
Windowsでコンパイルが必要なものはLinuxでもコンパイルが必要

Linuxの利点はコマンド一発でプログラミング環境整うって位?
インストーラを拾ってきてパス通してみたいな作業がいらない
d74a7548 anonymous 2017-03-13 06:49
C言語で書いたファイルをコンパイルせずに実行できたときは驚いた
インタプリタみたいな使い方になるからmain関数を最後に置く必要があるけど
c18bead2 anonymous 2017-03-13 11:01
>>50a31795
>> Linuxの利点はコマンド一発でプログラミング環境整うって位?
開発環境の構築が容易という理由でWeb系はMacに流れたからね。
2256c5f0 anonymous 2017-03-13 11:57
>>c54616e9
音楽なら一時期はやってたよ
あとオススメはUbuntu Studio
詳しくはネットの方がいいかもね
a1b1f22a anonymous 2017-03-13 21:13
>>50a31795
 ああごめん、少し誤解される言い方でした。
 インストーラとか、Windowsではスクリプトで仕上げている所はないと思うけど、Linuxでは普通にある、って言いたかったんです。

>>2256c5f0
 Ubuntu studioですか・・・実は最近、導入しようとXPマシンを転用しようとしたら、Ubuntuではないけどインストール直後にVGAカードが異常加熱してそのまま死亡してしまい導入無期延期した経緯がありまして。
 ハード環境整ったら再度チャレンジしようと思っていますがUbuntu Studioは知りませんでした。
 検討に加えさせて頂きます。情報ありがとうございました。
b921557f anonymous 2017-04-03 23:19
>>53583c71
そんなに行数あるんだな
node.js+mongodbに新月移植したいけど大変そう
restful apiでクライアントは別実装出来る奴
71f4b04c anonymous 2017-04-03 23:53
>>b921557f
きっと役に立つぞ
https://github.com/WhiteCat6142/syake
200701ca anonymous 2017-04-04 00:40
>>71f4b04c
サンクス

今仕様読んだけどプロコトル(他ノードとの通信部分)は思っていたより簡単そう
クライアントは既に別掲示板用に開発したのがあるからそれを移植すればすぐ出来るだろうし
ba01e2c4 anonymous 2017-04-04 02:20
>>200701ca
あっ、思い出したけどsyakeのノード管理の実装にはバグ?があってノード数が異様に増えたりするんでそこらへんはsakeを参考にしてくだしあ

Top of this page. | 0 1 2 old>>

limit: 1536KB

プログラミング Programming

(プログラミング入門/150/0.0MB)

Powered by shinGETsu.