If you can't read please download the document
Upload
aiya000
View
695
Download
0
Embed Size (px)
Citation preview
Vim script
JavaHaskell
@aiya_000
1 2015-07-042 2015-10-31
3
Vim script
Java
Haskell
: ( @aiya_000 )
: Vim
: Vim, Java, Haskell, C++, C#, Vim script, Vim, , etc
()
: @aiya_000 : @public_ai000ya
Github : aiya000
aho-bakaup.vimadrone.vimC++(TMP)
Vim script ( + )
Java +
Haskell ()
(Haskell)
Vim script
Vim
8Vim
Vim script
Vim
8Vim
Vim script()
Java
Java
( )
OOP()
Java()
Haskell
Haskell
Haskell
C, Java, C#=> ( )
Haskell()
Vim script
Java
Haskell
Vim script
Java
Haskell
Vim script -
autocmd
( OOP )
Vim script -
~~~
boolean( ) 1 or 0
Vim script -
int + double = double( )
string + int = int( )
doublestring + int = int ( )
intstring + intstring = int ( )
Vim script -
string . string = string( )
Vim script -
string . string = string( )
Vim script -
int
Vim script -
==
is
is
is
Vim script -
==
==
Vim script -
==
==
Vim script -
Vim script -
Vim script -
Haskell
Vim script !
Vim script !
Vim script !
- funcref
Vim script !
Vim script !
!?
Vim script
Java
Haskell
Java
OOP
C++autoC#var
Java
OOP
C++autoC#var
Java
Java
OOP
C++autoC#var
Java
(Java8)
Java
Java
Java8
Java8
Stream APIStreamReaderStream
(1,2,3,4,5..)
Optional
,-1null
Java8
Java8
ThreadRunnable
Java - StreamAPI
StreamAPI => (1,2,3,4,5..10)
!=
Java - StreamAPI
Java - StreamAPI
Stream, ,
Java - StreamAPI
- Stream1FizzBuzz
Java - StreamAPI
Java - StreamAPI
iterate(1,2...)1(1,2,3,4,5....10000,10001,10002...)
Java - StreamAPI
iterate(1,2...)1(1,2,3,4,5....10000,10001,10002...)
Java - StreamAPI
Java -
(n -> n + 1)
Java -
Java -
Java -
FunctionalInterface
Java - StreamAPI
iterate(1,2...)1(1,2,3,4,5....10000,10001,10002...)
Java - StreamAPI
iterate(1,2...)1(1,2,3,4,5....10000,10001,10002...)
Java - StreamAPI
Java - StreamAPI
map
Java - StreamAPI
mapn35 nFizzBuzzn3 nBuzzn5 nFizz n
Java - StreamAPI
Java - StreamAPI
(1,2...)(map)30
Java - StreamAPI
Java - StreamAPI
Java - StreamAPI
Java - StreamAPI
Java - StreamAPI
Java - StreamAPI
Java8
1Java
Java - StreamAPI
Java8
1Java
Java - StreamAPI
Stream3 or 4
Java - StreamAPI
Stream3 or 4
Java - StreamAPI
Stream3 or 4
Stream
Java - StreamAPI
Stream3 or 4
Stream
Java - StreamAPI
Stream3 or 4
( Stream )
Java - StreamAPI
Stream3 or 4
Stream
Java - StreamAPI
Java - StreamAPI
Java - StreamAPI
Java
Vim script
Java
Haskell
Haskell
Haskell
Haskell -
Java
Haskell -
=
func x = x + 1 -- func 10 -- (11)
Haskell -
( 2 )
Haskell -
()
Haskell -
a = 10 * 20
Haskell -
aa2
Haskell -
a
Haskell -
a
a10 * 2010 * 20
=> a=>
=>
Haskell -
(+ )
Haskell
Kata
Kata
Type
Haskell -
=> Int
=> Float
=> Char
=> [hoge]
=> String [Char]
=> (Int, Float, Char)
etc...
Haskell -
=> Int
=> Float
=> Char
=> [hoge]
=> String [Char]
=> (Int, Float, Char)
etc...
Haskell -
Java
Haskell -
(GHCiHaskellREPL)
Haskell -
(String)(Char)
Haskell -
Haskell -
(!!) n
Haskell -
*2
(*2)
Haskell -
:
Haskell -
:
Haskell -
:
( Int Float Char )1
Haskell -
ghci :t
Haskell -
ghci :t
Num t
t
Haskell -
=> Int
=> Float
=> Char
=> [hoge]
=> String [Char]
=> (Int, Float, Char)
etc...
Haskell -
Haskell -
Haskell -
Haskell -
123
Haskell -
Haskell -
()
Haskell
Haskell
Haskell -
:: ->
=
Haskell -
:: ->
=
Haskell -
:: ->
=
Haskell -
:: -> ->
=
Haskell -
:: -> ->
=
Haskell -
Int -> Int -> Int Int
Haskell -
Haskell -
Haskell
Haskell -
Haskell -
Haskell -
2
Haskell -
2
Haskell -
2
Haskell -
Haskell -
(\ -> )(\ -> )
Haskell -
(\x -> x + 1) func x = x + 1
Haskell -
2
Haskell -
2
fx2
Haskell -
2
fx2f
Haskell -
2
fx2f
twice (\x -> x + 1) 10 10 + 1 + 1
Haskell -
twice (\x -> x + 1) 10(\x -> x + 1) ( (\x -> x + 1) 10)(\x -> x + 1) (11)(11 + 1)12
Haskell -
Haskell -
Haskell -
Haskell -
Haskell -
Haskell -
Haskell -
(\x -> x + 1)
(+1)
Haskell -
(\x -> x + 1)
(+1)
Haskell -
Haskell(+)
(+) :: Num a => a -> a -> a
2
(+1) :: Num a => a -> a
(+)1 = (+) 1 = (+1)
Haskell -
Haskell(+)
(+) :: Num a => a -> a -> a
2
(+1) :: Num a => a -> a
(+)1 = (+) 1 = (+1)
Haskell21
Haskell -
Haskell -
(+)1a ( )
a = (+) 1 = (+1)
Haskell -
a = (+1)10
(+1) 10 = 11
a1
Haskell -
Haskell -
Haskell -
(\x -> x + 1) 10(\10 -> 10 + 1)(10 + 1)(11)
Haskell -
(\x -> x + 1) 10(\10 -> 10 + 1)(10 + 1)(11)
(+)
Haskell -
(+1) 10(10 + 1)(11)
(\x -> x + 1) 10(\10 -> 10 + 1)(10 + 1)(11)
Haskell -
---
(\x -> x + 1)
(\x -> x + 1) = x.x+1
(\x -> x + 1) 10 = (x.x+1)10
(\10 -> 10 + 1) = 10.10+1
Haskell -
---
(\x y -> x + y)
(\x y -> x + y) = xy.x+y
(\x y -> x + y) 1 = (xy.x+y)1(\1 y -> 1 + y) = (1)y.1+y
(\1 y -> 1 + y) 10 = ((1)y.1+y)10(\1 10 -> 1 + 10) = (1)(10).1+10
Haskell
Haskell -
Haskell -
Haskell -
101
Haskell -
101
Haskell -
Haskell -
( func1 ) 2
Haskell -
( func1 )
Haskell -
( func1 )
1
Haskell -
( func1 )
1
Haskell -
Haskell -
xy.x+y
(\x y -> x + y)
Haskell -
xy.x+y
(\x y -> x + y) xy2
Haskell -
xy.x+y(xy.x+y)1
Haskell -
xy.x+y(xy.x+y)1(1)y.x+y
Haskell -
xy.x+y(xy.x+y)1(1)y.x+y
Haskell -
xy.x+y(xy.x+y)1(1)y.x+y
2
Haskell -
xy.x+y(xy.x+y)1(1)y.x+y
Haskell -
xy.x+y(xy.x+y)1(1)y.x+y
1
Haskell -
xy.x+y(xy.x+y)1(1)y.x+y
(xy.x+y)1(1)y.x+y1
Haskell -
xy.x+y(xy.x+y)1(1)y.x+y
Haskellk
Haskell -
Haskell01
Haskell -
2func1
Haskell -
2func1func11a
Haskell -
2func1func11aa func11=>
Haskell -
2func1func11ab1a110Int
Haskell -
2func1func11ab1a110Int
Haskell -
Haskell0nn
Haskell -
where
let - in
if - else
Haskell -
where
let - in
if - else
Haskell - where
Haskell
Haskell - where
Haskell - where
()
Haskell - where
()
where
Haskell - where
Haskell - where
wherefuncB
Haskell - where
Haskell - where
Haskell -
where
let - in
if - else
Haskell - let-in
Haskell - let-in
funcB
Haskell - let-in
wherewhere
let-in
Haskell -
where
let - in
if - else
Haskell -
where
let - in
if - else
Haskell - if-else
if-elseelse if
( )
Haskell - if-else
Haskell - if-else
True
False
Haskell - if-else
Haskell - if-else
Haskell - if-else
case-of, ()
Haskell
>> Haskell >=)
Haskell -
(>> Nothing)
Haskell -
(>> Nothing)
Haskell
Haskell
- -
Haskell
- -
Writer
State
(Haskell)
Haskell
()