SlideShare ist ein Scribd-Unternehmen logo
1 von 100
Downloaden Sie, um offline zu lesen
Haskell勉強会 in ie
@maeken2010
2014/11/23
勉強会について
• 「Haskell(関数型言語)に触ってみよう」な勉強
会です
• 「すごいhaskell楽しく学ぼう」本を元にしてい
ます
目的
• Haskellの基本的な構文を触ってみよう
• FunctorとかMonadはしません
• 関数型ってなんぞ?
• haskellってなんぞ?
• という人向けです
Haskellは
純粋関数型言語
です
関数型言語?
関数型言語とは
• 計算や処理を「関数」として定義していく言語
• ※ここで言う関数とは数学で言う関数
• 第一級関数
• 関数を引数にとれたりできる
純粋?
純粋関数型とは
• 透過参照性がある
• 引数が同じなら結果は同じ
• バグが少なくなる
• (変更可能な)変数無し
Haskellの特徴
Haskellの特徴
• 強い静的型付け
• 遅延評価
• 強力な型システム
 _人人人人人_
 > モナド <
  ̄Y^Y^Y^Y ̄
モナドは怖くない
モナドは怖くない!
1.ghciで遊ぼう
ghciとは
$ ghci
GHCi, version 7.8.3: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
ghci>
• ghcの対話環境
• いちいちコンパイルしなくて良い
• プロンプトはデフォでは prelude>
ghciコマンド
• :q 終了
• :l ファイルロード
• :t 型確認
• :! shコマンド
基本な演算
• 四則演算+α
• + * - / ^ ** `mod` `div`
• bool値
• True False && || not == /= < > <= >=
関数を使う
• 普通は前置関数
• 優先度は一番高い
ghci> succ 3
4
ghci> succ 3*6
24
ghci> succ (3*6)
19
関数を使う
• +や*等も関数
• 中置関数は隣にあるやつを引数にとる
• ` `をつけると中置関数に
ghci> mod 4 2
0
ghci> 4 `mod` 2
0
関数を作る
• Fileに以下を書き込みしてbaby.hsで保存
• 関数名は必ず小文字から
doubleMe x = x+x
• ghciで:lコマンドで読み込み
ghci> :l baby.hs
[1 of 1] Compiling Main ( totu.hs, interpreted )
Ok, modules loaded: Main.
関数を作る
• 作った関数で関数を作ったり
doubleUs x y = doubleMe x + doubleMe y
if 式
• 条件分岐
hoge x = if x > 100
then x
else x*2
• ※インデントを見るので注意!
リスト
リスト
• Cで言う配列みたいなやつ( 配列)
• 同じ要素の集まり
ghci> [1,2,3]
ghci> ['a','b']
文字列
• Haskellでいう文字列は「文字のリスト」
• 文字列はリスト操作が可能
ghci> ['h','a','s','k','e','l','l']
“haskell”
リスト操作
• 連結
[リスト]++[リスト] 要素:[リスト]
• アクセス・比較
[リスト]!!要素数 < > <= >= == /=
リスト操作
• 他にも色々
head tail init last length null reverse
take drop maximum minimum
sum product `elem`…
レンジ
• 数列の生成
ghci> [1..10]
ghci> [2,4..24]
ghci> ['a'..'z']
• 無限も可 (遅延評価)
ghci> take 10 [1..]
リスト内包表記
• 集合で言う内包表記に近い
{x・2|x∈N,x<10} ←→ [x*2|x<-[1..10]]
• ex)「50から100までの数のうち7で割って3余
る数は?」
ghci> [x|x<-[50..100],x`mod`7==3]
タプル
• 長さが固定
• 違う種類もok
(1,'a',"hello")
2. 型
Haskellの型システム
• 静的型付け
• コンパイル時にエラーが分かる
• 大体は型推論してくれる
型の話
• 型と型コンストラクタは必ず大文字から
• 型コンストラクタとは「型の取りうる値」
• ex)Bool型
data Bool = False | True
型を調べる
• ghciで:tコマンド
ghci> :t 'a'
'a' :: Char
ghci> :t True
True :: Bool
型宣言
• 関数の型は「(引数)->(返り値)」
• 型宣言を与える
doubleMe::Int -> Int
doubleMe x = x+x
• Int型(整数型)だけを受け取るようになる
型宣言
• 複数の引数の場合は続けて書く
addThree::Int -> Int -> Int -> Int
addThree x y z = x+y+z
型変数
• 色々な型に対して定義する時
ghci> :t head
head :: [a] -> a
ghci> :t fst
fst :: (a, b) -> a
型クラス
• 型クラスとは型の定義を行なうやつ
ghci> :t (==)
(==) :: Eq a => a -> a -> Bool
• Eqが型クラス.aはEqのインスタンス(aはEqを満たしている).
例題
• 以下の条件を満たす直角三角形を見つけよう
• 3辺の長さはすべて整数
• 各辺の長さは10以下
• 周囲の長さは24に等しい
3. 関数構文
パターンマッチ
• 引数の構造によって場合分け
lucky :: Int -> String
lucky 7 = “LUCKY!”
lucky x = “UN LUCKY!”
パターンマッチ
• ex)階乗
factorial :: Int -> Int
factorial 0 = 1
factorial n = n * factorial (n-1)
※再帰処理については後ほど
パターンマッチ
• リストとかタプルとかも
head':: [a] -> a
head' [] = error “ERROR”
head' (x:xs) = x
asパターン
• 対象になった値自体も扱う時
firstLetter :: String -> String
firstLetter all@(x:xs) = ⇨
“First Letter of”++ all ++ “is”++ [x]
ガード
• 引数の値によって場合分け
bmiTell :: Double -> Double -> String
bmiTell weight height
| weight/height^2 <= 18.5 = “痩せてますね!”
| weight/height^2 <= 25.0 = “普通ですね!”
| weight/height^2 <= 30.0 = “太ってますね!”
| otherwise = “病院行きましょう!”
where節
• ガード内で関数や変数を定義
bmiTell :: Double -> Double -> String
bmiTell weight height
| bmi <= 18.5 = “痩せてますね!”
| bmi <= 25.0 = “普通ですね!”
| bmi <= 30.0 = “太ってますね!”
| otherwise = “病院行きましょう!”
where bmi = weight/height^2
where節
• whereでパターンマッチも可
• 違うパターンマッチ間では使えない
• インデントを読むので注意!
let式
• whereと同じく変数や関数を定義
• whereと違い,定義→式の順番
cylinder r h =
let sidArea = 2*pi*r*h
topArea = pi*r^2
in sideArea + 2*topArea
whereとlet
• letは式なのでどんな場所でも使用できる
ghci> 4*(let a = 9 in a + 1) + 2
• スコープは局所的(ガードでも共有されない)
• パターンマッチ可
• ghciでは関数や定数定義ではletだけでok
ghci> let hoge x y = x+y
case式
• 変数に対するパターンマッチを行なう
head’:: [a] -> a
head’ xs = case xs of [] -> error “ERROR!”
(x:xs) -> x
case式
• 式なのでletと同じようにどこでも使用できる
checkLs ls = “The list is”
++ case ls of [] -> “empty”
[x] -> “singleton”
xs -> “longer”
4. 再帰処理
おさらい
• Haskellには変更できる変数は無い
つまりforとか出来ない
どうすんの
\再帰処理/
再帰処理
• 再帰を書くコツ
1. 問題の基底部を見つけて定義する
2. 部分問題に分解し再帰的に解く
• 分解した部分問題の解から最終的な解を構築
ex)Fibonacci数
0,1,1,2,3,5,8,13,21,34,55…
1.基底部
• 再帰に頼らない自明な解
• ここではF_0=0とF_1=1
fib 0 = 0
fib 1 = 1
2.再帰部
• 「1つ前」と「2つ前」の要素を求める必要が
ある
• 解はその要素を足したもの
fib 0 = 0
fib 1 = 1
fib n = fib (n-1) + fib (n-2)
かんせい
fib :: Int -> Int
fib 0 = 0
fib 1 = 1
fib n = fib (n-1) + fib (n-2)
※ただしこの実装は非常に遅い
詳しくは末尾再帰でgoogle
基底部と再帰部
• 基底部は「再帰のゴール」
• 再帰部は「基底部に向かうように計算する」
例題
• reverse 関数
• リストを受け取り,その逆順を返す関数
• 例) reverse [1,2,3,4,5] →[5,4,3,2,1]
• FizzBuzzプログラム
• 1から100までのリストを生成する
• ただし,3の倍数のときは数の代わりに
「Fizz」、5の倍数のときは「Buzz」、3と5
両方の倍数の場合には「FizzBuzz」とするこ
と.
5. 高階関数
高階関数とは
• 関数自体を引数として受け取ったり返り値として
返したりできる関数
• 関数型言語の強み
Haskellの関数は
「1つしか引数を取れない」
ナ ナンダッテー!!
ΣΩ ΩΩ
カリー化関数
• Haskellの関数はすべてカリー化されている
• カリー化関数とは「引数を1つ受け取り,『残
りの引数を受け取って関数を返す関数』を返す」
???
ex) max関数
カリー化の例
• 引数を1つだけ適用してみる
ghci> let max_a = max 9
• 残りの引数を適用してみる
ghci> max_a 4
ghci> max_a 12
カリー化の例
• 型を見てみる
ghci> :t max
max :: Ord a => a -> a -> a
ghci> :t max_a
max_a :: (Ord a, Num a) => a -> a
↑引数が1つ減っている!
ex) セクション
カリー化の例
• 中置換数もカリー化できる
• 減算は注意!
• (-1)は「負の値」
ghci> let plus_one = (+1)
ghci> plus_one 9
10
ghci> let minus_one = (subtract 1)
ghci> minus_one 19
18
カリー化関数を表示?
• カリー化された関数は(基本的に)表示できない
• letで名前をつけたり引数として渡す必要がある
ghci> max 9
<interactive>:2:1:
No instance for (Show (a0 -> a0))
(maybe you haven't applied enough arguments to a function?)
arising from a use of ‘print’
In the first argument of ‘print’, namely ‘it’
In a stmt of an interactive GHCi command: print it
関数を受け取る
• 関数を引数としてもとれる
applyTwice :: (a -> a) -> a -> a
applyTwice f x = f (f x)
ghci> applyTwice (+3) 10
16
ghci> applyTwice (3:) [1]
[3,3,1]
mapとfilter
mapとfilter
• >map関数はHaskellプログラミングの米といっ
ても過言ではないでしょう(filterが塩です)
• すごいH本より
map
• 関数とリストを受け取り,関数をリストの要素
すべてに適用して新しいリストを返す
map :: (a -> b) -> [a] -> [b]
map _ [] = []
map f (x:xs) = f x : map f xs
mapの例
• リストの数字をそれぞれ2倍するとき
• リストの文字列に'!'を付け加えるとき
ghci> map (*2) [1,2,3,4,5]
[2,4,6,8,10]
ghci> map (++ "!") ["abc","def","ghc"]
["abc!","def!","ghc!"]
filter
• 述語とリストを受け取り,そのリストの要素の
うち述語を満たすものだけからなるリストを返
す
filter :: (a -> Bool) -> [a] -> [a]
filter _ [] = []
filter p (x:xs)
| p x = x : filter p xs
| otherwise = filter p xs
filterの例
• リストのうち3より大きいものだけを残す
• 文字列のうち大文字だけを残す
ghci> filter (>3) [1,5,3,2,7,6,8,2]
[5,7,6,8]
ghci> filter (`elem` ['A'..'Z']) "The Answer to The
Ultimate Question of Life, The Universe, and Everything"
"TATUQLTUE"
例題
そのうち
ラムダ式
• 無名関数
• 通常は高階関数に渡す関数を作るために使われる
ラムダ式
• バックスラッシュ() 引数 -> 関数本体
ghci> map (x -> x+3) [1,2,3,4]
[4,5,6,7]
ghci> map (+3) [1,2,3,4]
[4,5,6,7]
畳み込み
• データ構造(リストとか)を単一の値にまとめる
• 2引数関数,アキュムレータ,リストを用いる
左畳み込み
• 左畳み込みはfoldl
• ex)sum関数をfoldlで再定義
sum' xs = foldl (+) 0 xs
右畳み込み
• 右畳み込みはfoldr
• ex)map関数の再定義
map' f xs = foldr (x -> f x : acc) [] xs
例題
• 以下の関数を畳み込みを用いて定義せよ
• reverse
• product
• last
関数適用演算子
• 関数適用演算子($関数)
• 大雑把にいうと括弧()を少なくしたいときに使用
関数適用演算子
sum (filter (>10) (map (*2) [2..10]))
↓
sum $ filter (>10) $ map (*2) [2..10]
sum (map sqrt [1..130])
↓
sum $ map sort [1..130]
関数合成
• 数学の(f g)(x) = f(g(x))と同じ
• 「2つの関数を合成したもの」=「まず1つの関
数を呼び出し,次にもう1つの関数にその結果を
渡して呼び出したもの」
○
関数合成
map (x -> negate (abs x)) [5,-3,-19,24]
↓
map (negate.abs) [5,-3,-19,24]
map (xs -> negate (sum (tail xs))) [[1..5],[3..6],
[1..7]]
↓
map (negate.sum.tail) [[1..5],[3..6],[1..7]]

Weitere ähnliche Inhalte

Was ist angesagt?

プログラミングHaskell(第2章)
プログラミングHaskell(第2章)プログラミングHaskell(第2章)
プログラミングHaskell(第2章)yaju88
 
Real World OCamlを読んでLispと協調してみた
Real World OCamlを読んでLispと協調してみたReal World OCamlを読んでLispと協調してみた
Real World OCamlを読んでLispと協調してみたblackenedgold
 
関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCamlHaruka Oikawa
 
すごいHaskell読書会#1 in 大阪
すごいHaskell読書会#1 in 大阪すごいHaskell読書会#1 in 大阪
すごいHaskell読書会#1 in 大阪yashigani
 
(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義する(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義するblackenedgold
 
プログラミングHaskell(第1章)
プログラミングHaskell(第1章)プログラミングHaskell(第1章)
プログラミングHaskell(第1章)yaju88
 
Python勉強会4-制御構文とパッケージ
Python勉強会4-制御構文とパッケージPython勉強会4-制御構文とパッケージ
Python勉強会4-制御構文とパッケージ理 小林
 
言語処理系入門€5
言語処理系入門€5言語処理系入門€5
言語処理系入門€5Kenta Hattori
 
Introduction to Categorical Programming (Revised)
Introduction to Categorical Programming (Revised)Introduction to Categorical Programming (Revised)
Introduction to Categorical Programming (Revised)Masahiro Sakai
 
(Lambdaだけで) 純LISPのような ナニかを作る
(Lambdaだけで)純LISPのようなナニかを作る(Lambdaだけで)純LISPのようなナニかを作る
(Lambdaだけで) 純LISPのような ナニかを作るDaichi Teruya
 
BOF1-Scala02.pdf
BOF1-Scala02.pdfBOF1-Scala02.pdf
BOF1-Scala02.pdfHiroshi Ono
 
Introduction to Categorical Programming
Introduction to Categorical ProgrammingIntroduction to Categorical Programming
Introduction to Categorical ProgrammingMasahiro Sakai
 
並行プログラミングと継続モナド
並行プログラミングと継続モナド並行プログラミングと継続モナド
並行プログラミングと継続モナドKousuke Ruichi
 
Scala 初心者が米田の補題を Scala で考えてみた
Scala 初心者が米田の補題を Scala で考えてみたScala 初心者が米田の補題を Scala で考えてみた
Scala 初心者が米田の補題を Scala で考えてみたKazuyuki TAKASE
 
Freer Monads, More Extensible Effects
Freer Monads, More Extensible EffectsFreer Monads, More Extensible Effects
Freer Monads, More Extensible EffectsHiromi Ishii
 
mathematical_notation
mathematical_notationmathematical_notation
mathematical_notationKenta Oono
 
PythonでLispを実装した (evalつき)
PythonでLispを実装した (evalつき)PythonでLispを実装した (evalつき)
PythonでLispを実装した (evalつき)t-sin
 
Python勉強会3-コレクションとファイル
Python勉強会3-コレクションとファイルPython勉強会3-コレクションとファイル
Python勉強会3-コレクションとファイル理 小林
 

Was ist angesagt? (20)

Lisp講義1
Lisp講義1Lisp講義1
Lisp講義1
 
プログラミングHaskell(第2章)
プログラミングHaskell(第2章)プログラミングHaskell(第2章)
プログラミングHaskell(第2章)
 
Real World OCamlを読んでLispと協調してみた
Real World OCamlを読んでLispと協調してみたReal World OCamlを読んでLispと協調してみた
Real World OCamlを読んでLispと協調してみた
 
関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml
 
すごいHaskell読書会#1 in 大阪
すごいHaskell読書会#1 in 大阪すごいHaskell読書会#1 in 大阪
すごいHaskell読書会#1 in 大阪
 
(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義する(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義する
 
プログラミングHaskell(第1章)
プログラミングHaskell(第1章)プログラミングHaskell(第1章)
プログラミングHaskell(第1章)
 
Python勉強会4-制御構文とパッケージ
Python勉強会4-制御構文とパッケージPython勉強会4-制御構文とパッケージ
Python勉強会4-制御構文とパッケージ
 
言語処理系入門€5
言語処理系入門€5言語処理系入門€5
言語処理系入門€5
 
Pythonintro
PythonintroPythonintro
Pythonintro
 
Introduction to Categorical Programming (Revised)
Introduction to Categorical Programming (Revised)Introduction to Categorical Programming (Revised)
Introduction to Categorical Programming (Revised)
 
(Lambdaだけで) 純LISPのような ナニかを作る
(Lambdaだけで)純LISPのようなナニかを作る(Lambdaだけで)純LISPのようなナニかを作る
(Lambdaだけで) 純LISPのような ナニかを作る
 
BOF1-Scala02.pdf
BOF1-Scala02.pdfBOF1-Scala02.pdf
BOF1-Scala02.pdf
 
Introduction to Categorical Programming
Introduction to Categorical ProgrammingIntroduction to Categorical Programming
Introduction to Categorical Programming
 
並行プログラミングと継続モナド
並行プログラミングと継続モナド並行プログラミングと継続モナド
並行プログラミングと継続モナド
 
Scala 初心者が米田の補題を Scala で考えてみた
Scala 初心者が米田の補題を Scala で考えてみたScala 初心者が米田の補題を Scala で考えてみた
Scala 初心者が米田の補題を Scala で考えてみた
 
Freer Monads, More Extensible Effects
Freer Monads, More Extensible EffectsFreer Monads, More Extensible Effects
Freer Monads, More Extensible Effects
 
mathematical_notation
mathematical_notationmathematical_notation
mathematical_notation
 
PythonでLispを実装した (evalつき)
PythonでLispを実装した (evalつき)PythonでLispを実装した (evalつき)
PythonでLispを実装した (evalつき)
 
Python勉強会3-コレクションとファイル
Python勉強会3-コレクションとファイルPython勉強会3-コレクションとファイル
Python勉強会3-コレクションとファイル
 

Ähnlich wie Haskell勉強会 in ie

How wonderful to be (statically) typed 〜型が付くってスバラシイ〜
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜How wonderful to be (statically) typed 〜型が付くってスバラシイ〜
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜Hiromi Ishii
 
JavaScript 講習会 #1
JavaScript 講習会 #1JavaScript 講習会 #1
JavaScript 講習会 #1Susisu
 
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと 12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと Haruka Ozaki
 
Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2Ransui Iso
 
Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Ransui Iso
 
オブジェクト指向開発におけるObject-Functional Programming
オブジェクト指向開発におけるObject-Functional Programmingオブジェクト指向開発におけるObject-Functional Programming
オブジェクト指向開発におけるObject-Functional ProgrammingTomoharu ASAMI
 
JavaScriptクイックスタート
JavaScriptクイックスタートJavaScriptクイックスタート
JavaScriptクイックスタートShumpei Shiraishi
 
Pythonで始めるDropboxAPI
Pythonで始めるDropboxAPIPythonで始めるDropboxAPI
Pythonで始めるDropboxAPIDaisuke Igarashi
 
すごいH 第12章モノイド
すごいH 第12章モノイドすごいH 第12章モノイド
すごいH 第12章モノイドShinta Hatatani
 
Vim scriptとJavaとHaskell
Vim scriptとJavaとHaskellVim scriptとJavaとHaskell
Vim scriptとJavaとHaskellaiya000
 
Math tutorial public
Math tutorial publicMath tutorial public
Math tutorial publicKenta Oono
 
Chapter 6: Computing on the language (R Language Definition)
Chapter 6: Computing on the language (R Language Definition)Chapter 6: Computing on the language (R Language Definition)
Chapter 6: Computing on the language (R Language Definition)Nagi Teramo
 
mathemaical_notation
mathemaical_notationmathemaical_notation
mathemaical_notationKenta Oono
 
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)Masahiro Hayashi
 

Ähnlich wie Haskell勉強会 in ie (20)

How wonderful to be (statically) typed 〜型が付くってスバラシイ〜
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜How wonderful to be (statically) typed 〜型が付くってスバラシイ〜
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜
 
JavaScript 講習会 #1
JavaScript 講習会 #1JavaScript 講習会 #1
JavaScript 講習会 #1
 
Haskell Lecture 1
Haskell Lecture 1Haskell Lecture 1
Haskell Lecture 1
 
Haskell
HaskellHaskell
Haskell
 
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと 12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
 
Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2
 
圏とHaskellの型
圏とHaskellの型圏とHaskellの型
圏とHaskellの型
 
Python opt
Python optPython opt
Python opt
 
Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3
 
オブジェクト指向開発におけるObject-Functional Programming
オブジェクト指向開発におけるObject-Functional Programmingオブジェクト指向開発におけるObject-Functional Programming
オブジェクト指向開発におけるObject-Functional Programming
 
JavaScriptクイックスタート
JavaScriptクイックスタートJavaScriptクイックスタート
JavaScriptクイックスタート
 
Pythonで始めるDropboxAPI
Pythonで始めるDropboxAPIPythonで始めるDropboxAPI
Pythonで始めるDropboxAPI
 
すごいH 第12章モノイド
すごいH 第12章モノイドすごいH 第12章モノイド
すごいH 第12章モノイド
 
Vim scriptとJavaとHaskell
Vim scriptとJavaとHaskellVim scriptとJavaとHaskell
Vim scriptとJavaとHaskell
 
Math tutorial public
Math tutorial publicMath tutorial public
Math tutorial public
 
Chapter 6: Computing on the language (R Language Definition)
Chapter 6: Computing on the language (R Language Definition)Chapter 6: Computing on the language (R Language Definition)
Chapter 6: Computing on the language (R Language Definition)
 
Clean
Clean Clean
Clean
 
Clean
Clean Clean
Clean
 
mathemaical_notation
mathemaical_notationmathemaical_notation
mathemaical_notation
 
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)
 

Kürzlich hochgeladen

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 

Kürzlich hochgeladen (11)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 

Haskell勉強会 in ie