LLにおける関数型プログラミング

■ このスレッドは過去ログ倉庫に格納されています
2012/08/16(木) 22:17:50.32
339 返信:153[sage] 投稿日:2012/08/16(木) 22:16:29.83
>>314
>関数型言語でなければならないという観点は間違ってる気がする

ああ、これについては同感だね
現状のどの関数型言語も文字列、パターン、ハッシュの操作に難があるから、
現行LLであるPerl/Python/Rubyを置き換えるには無理があると思う

ただし、関数型言語にも良い特性がある訳で、実際に(LLを含む)多くの言語に影響を与えている
だから自分は「LLにおける関数型プログラミング」に注目している
2012/08/16(木) 22:20:44.31
そうか
3うゆ
垢版 |
2012/08/16(木) 22:24:22.07
rubyが最強っていってんじゃん
2012/08/16(木) 22:29:24.64
いい加減関数型とかうるさい
2012/08/16(木) 22:42:07.04
>>1
> 現状のどの関数型言語も文字列、パターン、ハッシュの操作に難があるから、

その難というのを、もっと明確に言ってほしい。

たとえば、**というプログラムをする上で必要な
文字列に関する$$という操作が、
どの関数型言語でもできない、あるいはやりにくい。

など

パターンとハッシュに関しても同様に。
2012/08/16(木) 22:46:25.19
【関連サイト: Python編】

・関数型プログラミング HOWTO ― Python 2.7ja1 documentation
 http://www.python.jp/doc/nightly/howto/functional.html

・魅力的なPython: Pythonでの関数プログラミング: 第1回 - IBM dw
 http://www.ibm.com/developerworks/jp/linux/library/l-prog/

・Pythonの技法:関数型言語スタイル「関数の部分適用」 - ZDNet Japan
 http://builder.japan.zdnet.com/script/20364411/

・Pythonの"関数型"の機能の起源 - The History of Python.jp
 http://python-history-jp.blogspot.jp/2009/05/python.html
2012/08/16(木) 22:54:29.59
カリー化なんかもRubyで簡単にできる時代

def add(a, b)
 return a + b
end

def curry(f, a)
 return lambda { |b| method(f).call(a, b) }
end

add1 = curry(:add, 1)
p add1.call(2)

Rubyは関数オブジェクトを扱えるので、
置き換えるも何も、既にRubyは関数型言語
当然純粋関数型言語ではないし、関数型言語らしく書かない事もできるけど、
関数型言語としての特性を備えている事に変わりはない

そもそもどの言語でも最近関数オブジェクトの取り入れが盛んで、
関数型言語かどうかという分類が既に成り立たなくなってる
C++11ですらカリー化できる時代、
可能なのはせいぜい純粋関数型言語か否かという区別程度だな
http://ideone.com/H82Pn
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況