第一回関数型言語勉強会

たのしい関数型 @s_kozake

  - 自己紹介
    小酒信一
    普段はjavaとか
  - 関数型とは?
    副作用を持たない関数を中心にしてプログラムを組み立てる手法
    - 副作用を持たない?
      その関数をいくらよびだしても、引数が一緒ならかえる値はかわらない
  - なぜ関数型?
    - CPUのマルチコア化
      今迄以上に平行プログラミングが重要
      副作用の無い関数型は並行処理と相性がいい
    - 高階関数
      関数がファーストクラスオブジェクト
    - 内部DSL
      領域特化された言語
    - HOWからWHATへ
      ハードウェアからソフトウェアへ
    - ハッカーになれる
      Lispを勉強するとハッカーになれるらしい
  - リストとは?
    - 同じ型の要素の並び
      文字列もリスト
  - タプルとは?
    有限固の固まり
  - リスト内包表記とは?
    - 既存のリストからあたらしいリストを生成する方法
      ガードと組み合わせるといろいろできちゃうよっ
  - 再帰関数とは
    関数自身を使って定義された関数
    - 再帰関数の考え方
      - 型を定義する
      - 場合分けをする
      - 簡単な方を書く
      - うにゃうにゃ
    - 再帰の問題
      - スタックの使いすぎ
    - 末尾再帰とは
      - いちばん最後に自分自身を再帰的によびだしてる
    - ラムダ
      - 引数のパターンようおび
      - その結果を返す
      - 無名関数
    - 高階関数とは?
      - 引数として関数をとったり、うんたらかんたら
    - クロージャーとは?
      - 引数以外の変数を自身が定義された環境において解決する仕組み
    - カリー化
      - 関数は関数を返り値としてかえせるので、それで一つの関数で一つの引き数をとるようにする考え方
  - How to Study?
    - プログラミングHaskell
    - ふつうのHaskellプログラミング
    - Scala
    - Scala実践プログラミング

今日からはじめるClojure @kuchitama

  - clojure
    Lisp
    jvmで動く
    関数型
    - 環境構築
      - Leiningen
 - だいたいオールインワン
    - 書籍
      - 7つの言語7つの世界
      - Clojure Proguraming
      - プログラミング言語Clojure
    - 4Clojure
      - ブラウザで実行
    - Kyoto.clj
      - Clojureの勉強会

関数型脳になろう! @its_out_of_tune

  javaでいろいろ縛りでBrainF*ckのインタプリンタを書いたののの評価的なの

C#erがF#にちょろっとはいよってみた @Posaune

  - 悪いニュース
    - F#はぜんぜんしりません
    - とりあえずさわった感想
  - 関数型とかわからない
    - VSこそホーム
    - 可能ながぎりLinqを使いたい
  - F#の印象
    - F#すげぇ!
      - インテリセンスがちゃんときく
    - F#すげぇ
      - 型をほぼかかない
      - 定義では確定しないのに使い方で確定するのすげぇ
    - F#すげぇ
      - デバックしやすい
    - F#の印象
      - なんとなくわかる
    - C#とかとだいたいあってる
      -F#こわくないじゃん!
    

関数型って? @kitora_naoki

  - 関数
    - 手続型プログラミングにおける関数ではない
    - 数学でいう関数
      - 入力xに対して出力yを返す
  - 関数型言語
    - 関数型プログラムに向いた特徴を持つプログラミング言語
    - 共通定義ではない
  - 関数型プログラミング
    - 計算とは関数によるべきだてきなの
  - 関数型プログラミンングの必要条件
    - 第一級関数をあつかえる
      - 関数を第一級オブジェクトとしてあつかえる
      - 第一級オブブジェクト
 - プログラムの実行時に生成されてうんたらかんたら
 - 高階関数
   - 関数を引数にしたらい戻り値にしたりする関数
      - 理論モデル
 - ラムダ計算
    - 参照透過性がたもたれること
      - 文脈によらず式の値はその構成要素によってのみさだまる
      - 同じ値が引き数なら同じ結果を返す
  - どうやってプログラムするの?
    - 副作用
      - Monado
      - 純粋性にこだわらなければあるていど許容
      - 破壊的代入
 - あたらしい変数を作る
 - 代入は無い
      - ループは再帰
 - 漸化式とかやるとらく
  - 関数型の利点
    - 参照透過性
      - ユニットテストが書きやすい
      - 並列処理に向いてる
    - 第一級関数
      - コードが簡潔に
      - 関数を共通化しやすい

プログラムを計算する話 @uskz

  途中でちからつきた
  - ソフトウェア開発者ってエンジニアなの?
    - エンジニアリングにたりるのか
      - 最終的な成果物が設計書
 - 設計書は製造チームに引き渡される
      - 科学知識をつかう
 - エンジニアは設計書を記述するためにその分野の科学知識をつかう
 - 扱う問題を数学的モデルを使ってうんたらかんたら
   
  - プログラミングにも形式的なものへの逃げ道を

速習 関数型言語 @ikegami__

  - プログラミング言語の基礎理論
    - 関数型計算のりろんとかうんたらかんたら
  - 関数プログラミング(リチャードバード)
  - 関数プログラミング
  - プログラミングの基礎 浅井
  - プログラミング言語の基礎概念 五十嵐
  - 計算機プログラムの構造と解釈
    - LISP
  - プログラミングClojre
  - すごいHaskellたのしく学ぼう
  - プログラミングOCaml
  - Scala

Inverse FizzBuzzを解いてみよう @quassia88

  - Inverse FizzBUzzって何?
    - FizzBuzzの逆問題
      - FIzzBuzz
 - 3の倍数ならFizz 5の倍数ならBuzz 両方なら両方
      - {Fizz,Buzz,Fizz}から{3,4,5,6}をとりだす
 - 力技は作者がやってるので他の方法
 - FizzBuzzは循環数列なのでそこから、
   

OCamlの多相ヴァリアントの紹介 @kyon_mm

  irofさんうんたらかんたら

代数的データ型をラムダ計算の中で表現する方法 @syamino

  代数的データかたとかうんたらかんたら(訳:書くのあきらめた)

スタートSML# @keita44_f4

  - こわくないよ!
    - でも遅刻をします
  - SML#
    - 日本生れのML言語
      - SML#でぐぐれ!
      - CとかSQLとかをとりいれて実用的な関数型言語を!
    - Cとの連携が簡単
      - SML#に関数が無いならCをインポートすればいいじゃない!
 

関数型言語勉強会LT @irof

  - ゆるいのでHaskell
    - こんかいは入門のはずだった
      - 一行でインストール可能
      - cabalとかいうパッケージ管理システムがあるらしい
      - hspace
 - まぁ、書いたらなんとなくよめるよね
   - ちょっとつまらん
     - そのたのツールもごにょごにょやっとけばおk
最終更新:2012年05月20日 08:50