2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

関数型言語ML (SML, OCaml, etc.), Part 6

1 :デフォルトの名無しさん:2009/06/15(月) 07:15:21 .net
関数型言語MLについて語るスレッドです。

MLは、確固とした理論的背景を持つ言語でありながら、
現実的なソフトの開発にも使用できる実用性を備えた言語です。
また、プログラミングの初心者が最初に学習する言語としても優れています。

総本山
Standard ML http://www.smlnj.org/
Objective Caml http://caml.inria.fr/ocaml/

前スレ
関数型言語ML(SML, OCaml, etc.), Part 5
http://pc12.2ch.net/test/read.cgi/tech/1186292994/

954 :デフォルトの名無しさん:2017/02/28(火) 21:46:08.53 ID:hBxDt9/3.net
>>952解決しました

955 :デフォルトの名無しさん:2017/03/01(水) 12:55:25.91 ID:jLbNtrZK.net
どのようにして解決したのか書いてもらえると
同じ状況に陥った人の助けになるかも知れないわけだが…

956 :デフォルトの名無しさん:2017/03/01(水) 16:07:29.52 ID:ZtKy2rs9.net
>>955
解決策を2つ試しました

まず、著者のサポートサイト(http://pllab.is.ocha.ac.jp/~asai/book/Linux.html)を見て、
 @端末起動→上部メニューバーの端末タブ→文字コードの設定→日本語(EUC-JP)に設定してから
 ALANG=en_US.ISO88591 ocamlを実行しましたが解決しませんでした。

次に、http://qiita.com/KenjiYamauchi/items/40aaab56b65777950877を参考にして、
 @任意テキストエディタで~/(ホームディレクトリ配下の意味)に.ocamlinitというファイルを作り、
 A「let printer ppf = Format.fprintf ppf "\"%s\"";;
   #install_printer printer」と記述した所、解決しました。

コンピュータやプログラミングに詳しい方にはかなりくどいと思いますが、多分自分のようなプログラミング初心者が読む本だと思うので念入りに書いておきます。

957 :デフォルトの名無しさん:2017/03/01(水) 16:10:35.17 ID:ZtKy2rs9.net
というか、誰も見てないと思ってた・・・

958 :デフォルトの名無しさん:2017/03/01(水) 16:46:02.21 ID:8oSlLlXA.net


959 :デフォルトの名無しさん:2017/05/01(月) 06:16:47.63 ID:Cn5FkhjE.net
純粋関数型データ構造が発売されたってのに盛り上がってないな

960 :デフォルトの名無しさん:2017/05/01(月) 08:26:08.29 ID:X5RvQ3AI.net
>>959
あれを読むような層は、既に原書で読んでるから気にもしないのでは。

961 :デフォルトの名無しさん:2017/05/30(火) 11:59:51.61 ID:heN7Y+lD.net
Real World OCaml で OCaml入門中です。

https://realworldocaml.org/v1/en/html/variables-and-functions.html
... As a result, when passing labeled functions as arguments,
you need to take care to be consistent in your ordering of labeled arguments.

要は、ラベル付引数持ちの関数 は 引数の順序気にしなくて良くなるので便利だねって話だったのに、
そういう関数を 他の関数に引数として渡す時は 順序気にしないと型エラーになるかもよ、と。
現 (OCaml ver. 4.04.1) にそうなってるのはしょうがないとして、ユーザーは不満だったりしないんですかね?
仕様変えてどこでも順序気にしなくてよくなるようにするのは何か不都合があるんでしょうか?

962 :デフォルトの名無しさん:2017/05/31(水) 12:35:03.09 ID:nyiBm3r5.net
はい

963 :デフォルトの名無しさん:2017/06/02(金) 14:10:54.16 ID:v4wV8DId.net
>>959
書店で立ち読みしてみたんだけど微妙に扱っているデータ構造少なくね?
サンプルコードがStandard MLというのは驚いたが。

964 :デフォルトの名無しさん:2017/06/09(金) 03:43:45.31 ID:Z/PWf/cV.net
末尾再帰がイメージできないんだけど

965 :デフォルトの名無しさん:2017/06/09(金) 10:56:43.72 ID:jgO9PNm3.net
「なんでも再帰」や「なんでも継続」を読んでみたら?例はSchemeだが

966 :デフォルトの名無しさん:2017/06/09(金) 13:37:56.60 ID:3OdcZ+id.net
fact 0 = 1
fact n = n * (fact (n-1))
だと,fact (n-1)の再帰呼出の後で nとの掛け算を
しなければならない.計算の最後(=末尾)が再帰では
なく乗算となる.
fact2 0 n = n
fact2 n k = fact2 (n-1) (n*x)
として
fact1 n = fact2 n 1
としておけば,fact2の計算の最後はfact2の
再帰呼出で,callをgotoに変えたループで実行できる.
こんな感じでイメージできる?

967 :デフォルトの名無しさん:2017/06/09(金) 14:50:46.84 ID:rw1qC18c.net
f_outer(n){
f_inner(n, accumulator){
if 1 == n
accumulator
else
f_inner(n - 1, n * accumulator)
}
}

accumulator に蓄積すれば?

968 :965:2017/06/09(金) 14:56:24.07 ID:rw1qC18c.net
f_outer(n){
f_inner(n, accumulator){
if 1 == n
accumulator
else
f_inner(n - 1, n * accumulator)
}
return f_inner(n, 0)
}

修正。
内部関数を、return するのが抜けていた

969 :デフォルトの名無しさん:2017/06/09(金) 16:51:44.77 ID:VCuqCK40.net
おおおわかった気がする
ありがとう!
なんでも再起とやらも読んで見ることにする

970 :デフォルトの名無しさん:2017/06/09(金) 17:05:35.04 ID:3Dqy8l+L.net
>>968
return f_inner(n, 1)
じゃない?

971 :デフォルトの名無しさん:2017/06/25(日) 18:30:26.47 ID:v1ZjLLZV.net
OcamlとかCoqって名古屋以外でも大学での授業とか研究に使われているの?
一時期のブームは去ったみたいだけど。
大学の情報学部とかの現状にはちょっとだけ興味がある。

そして流行に後れて今頃勉強している40代のオレ。

972 :デフォルトの名無しさん:2017/07/03(月) 09:21:46.88 ID:ipQv+IYB.net
東大東北大お茶の水では使ってた

973 :デフォルトの名無しさん:2017/07/03(月) 17:44:24.93 ID:/M1wO8+Z.net
授業で使ったのに広まらなかったということか。
つまり啓蒙に失敗したと。

974 :デフォルトの名無しさん:2017/07/04(火) 13:46:26.44 ID:VgVQ93XC.net
Occamなら知っとるぞよ?

975 :デフォルトの名無しさん:2017/07/12(水) 14:21:04.56 ID:06OhWRFP.net
>973
広まらなかったというかキラーアプリがなかったというか…
結局Ocamlで作られたアプリで唯一プログラマ間で流行ったのがCoqなんじゃね?

976 :デフォルトの名無しさん:2017/07/12(水) 14:33:02.68 ID:bLDjTsNM.net
OCaml は金融とかで使われてるんじゃ無かったか。

そういや Rust も最初は OCaml でコンパイラー書かれてたんだよな。

977 :デフォルトの名無しさん:2017/07/14(金) 23:08:50.92 ID:UJz0OWoz.net
俺がocaml覚えたきっかけはとあるエロゲーのチートツールなんだが
あれの作者がなぜそれを採用したかにはずごい興味ある

978 :デフォルトの名無しさん:2017/07/15(土) 12:06:36.80 ID:03i9G/wL.net
>>977
どっかの学生だったんじゃないの?兄妹ものエロゲだけに京大とか。

979 :デフォルトの名無しさん:2017/08/16(水) 21:00:55.34 ID:H/HIEf+2.net
(*´・ω・`*)

980 :デフォルトの名無しさん:2017/08/17(木) 13:02:39.82 ID:5mQoD0+b.net
(´・ω・`)

981 :デフォルトの名無しさん:2017/09/01(金) 18:43:59.45 ID:RxXe6GrD.net
8月はちょっと纏まった時間がとれたので、
「ソフトウェアの基礎」日本語訳の練習問題を解きすすめてみた。

まだPoly.vが終わった序盤だけどだいぶCoqに慣れてきた。
星三つrecommendedでもたまに難しい問題があるなー、というのが感想。

論理学の命題というのは高校・大学教育で慣れているだけで
見直してみると思ったよりも複雑な構造をしていたのだと今更ながらに感じた。

実務でCoqが要求されることは当分ないと思うけど、
逆変換の関数は少なからず実装することがあるので
ときどき「Coq使って証明したい」という気分にはなるんだよなー。

982 :デフォルトの名無しさん:2017/09/05(火) 11:03:28.55 ID:a/Cb1ZW9.net
http://ocaml.jp/
死んでるな……

> ( ! ) Parse error: syntax error, unexpected 'new' (T_NEW) in /virtual/osiire/public_html/lib/func.php on line 531

983 :デフォルトの名無しさん:2017/09/08(金) 14:02:07.35 ID:swD2wqBn.net
ocaml.jpは息してる?

984 :デフォルトの名無しさん:2017/09/24(日) 12:35:45.27 ID:VL5Szw+L.net
いつまで死んでるんだよ

985 :デフォルトの名無しさん:2017/10/03(火) 00:31:09.35 ID:JZnIdnEQ.net
復活した

986 :デフォルトの名無しさん:2017/10/03(火) 02:20:47.65 ID:upqeSfz9.net
復活したのは良いけど、一言何か無いのかよ。誰が管理してるんだ。

987 :979:2017/10/05(木) 12:08:08.18 ID:SZzrAZT5.net
日本語訳の古さに苦戦しつつLogic.vまで進めていたところ……
久しぶりに英語の本家を見たら、
なんかVol.1 〜 Vol.3に増えてるー!?
あまりの道のりの遠さに絶望しつつ内容を見ると、
旧版からホーア理論まわりをVol..2に分離し、
Vol.3は赤黒木等の少し高度なデータ構造について色々とCoqで証明して感じらしい(新規)。

……く、面白そうじゃないか。

988 :デフォルトの名無しさん:2017/10/05(木) 19:45:51.56 ID:72rIdNeW.net
>>981
リンクpls

989 :デフォルトの名無しさん:2017/10/07(土) 12:06:25.63 ID:689sKi0/.net
>>988
https://softwarefoundations.cis.upenn.edu/

990 :979:2017/10/30(月) 19:39:25.32 ID:asGH9s/c.net
ここ一ヶ月、旧くなった日本語版を捨て英語版に再挑戦してみた。
以前は出来るだけ写経していたが時間がかかり過ぎるので、
付属の.vファイルを直接書き換える方針に変更。

結構章立てと共に内容変わってるなぁ……追加された良問も多いし。
英語の非形式的証明は書く機会もなさそうだし、パスするか。
しかし、答えがWeb上に転がってないのは自習者には正直辛い。

どうもSICPみたいな標準教科書を目指してるっぽい?
こーゆうの(coq)を国立研究所で作れる国はやっぱり凄いと思う今日この頃。

991 :デフォルトの名無しさん:2017/11/01(水) 07:27:01.78 ID:wuKEf1Sh.net
a

992 :デフォルトの名無しさん:2017/11/01(水) 07:27:36.60 ID:wuKEf1Sh.net
sit

993 :デフォルトの名無しさん:2017/11/01(水) 07:27:56.41 ID:wuKEf1Sh.net
dot

994 :デフォルトの名無しさん:2017/11/01(水) 07:28:13.79 ID:wuKEf1Sh.net
egg

995 :デフォルトの名無しさん:2017/11/01(水) 07:28:31.25 ID:wuKEf1Sh.net


996 :デフォルトの名無しさん:2017/11/01(水) 07:28:48.81 ID:wuKEf1Sh.net
this

997 :デフォルトの名無しさん:2017/11/01(水) 07:29:26.33 ID:wuKEf1Sh.net
combi

998 :デフォルトの名無しさん:2017/11/01(水) 07:30:08.09 ID:wuKEf1Sh.net
it

999 :デフォルトの名無しさん:2017/11/01(水) 07:30:42.85 ID:wuKEf1Sh.net
2

1000 :デフォルトの名無しさん:2017/11/01(水) 07:31:16.98 ID:wuKEf1Sh.net
ping

1001 :デフォルトの名無しさん:2017/11/01(水) 07:32:05.81 ID:wuKEf1Sh.net
pong

1002 :デフォルトの名無しさん:2017/11/01(水) 07:32:32.73 ID:wuKEf1Sh.net
wild

1003 :2ch.net投稿限界:Over 1000 Thread
2ch.netからのレス数が1000に到達しました。

総レス数 1003
241 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★