More Related Content
PDF
PDF
PDF
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby PDF
PDF
nomlab_okayamaruby_subslide PDF
Swift の可変値と不変値 #cocoa_kansai PDF
PDF
What's hot
PDF
PDF
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9) PDF
Refactoring point of Kotlin application PDF
PDF
PDF
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行 PPTX
コードに基づくモデルによる IntelliCode PDF
PDF
PDF
PPTX
PDF
プリキュアのRuby実装の紹介 #RubyHiroba PDF
First step of Rails Contribute #shibuyarb PDF
で、次は何がくるの? - 第2回 TIS Matsuri PDF
Rubyでプリキュアを作った #cure_advent #shibuyarb PDF
20130615 組込みの仕事場でRubyを使う PDF
Rubyist started to learn Groovy - things important to leran new LL PDF
TypeScript & 関数型講座 第2回 TypeScript という言語 PPTX
PDF
Similar to プログラミング言語Cyanの紹介
PDF
PPTX
PDF
PPTX
PPT
PDF
PDF
PDF
PDF
ODP
プログラミング言語Ruby 1章 イントロダクション ODP
PDF
PDF
PDF
ODP
PPT
Lightning introduction to CoffeeScript 20131005 PDF
PDF
KEY
PDF
More from baban ba-n
ODP
Typusとadministrateを比較してみよう ODP
ODP
ハッカソン。来た、見た、負けた! Spajam2016仙台予選 ODP
ODP
ODP
ODP
ODP
Rubyのコードを読んでみよう(オブジェクト編) ODP
PDF
ODP
Rails-Plugin Flexturesの紹介 プログラミング言語Cyanの紹介
- 1.
- 2.
- 3.
- 4.
- 5.
基本的な構文
●
●
[1, 2, 3,4] # リスト
%{ "Mt. Fuji" => "Shizuoka", "Mt. Aso" =>
"Kumamoto" } # ハッシュ
{ say(“HELLO”); } # ブロック
^(x) { say(x); } # ラムダ
LL 言語使いなら見慣れた書式に近いのが分か
る
- 6.
- 7.
- 8.
- 9.
- 10.
基本的な構文
●
引数クラスと引数展開
say &(1, *[2,3], *%{ 'a => 4 }, *&(5, :b 6)) #=>
&(1, 2, 3, 5, :a 4, :b 6)
●
●
●
「 * 」で配列を展開して受け取る
引数の末尾では {} を省略してハッシュを渡
せる
「 & 」は " 引数オブジェクト " の定義記号
JS と Ruby 両方の合わせ技なカンジです
- 11.
- 12.
マクロの基本構文
準クォート「 ` 」の中で「? 」付けた変数は
展開されてプログラム中に埋め込まれる
recv = 2
args = &({ say "meow" })
# 2.times({ say("meow") }) という式を表示
say `(?recv).times(?*args)
- 13.
- 14.
- 15.
Cyan の特徴 2メソッド編
●
List に定義されているメソッドを見る
http://www.geocities.jp/takt0_h/cyan/doc/ref/objects/lis
中身 :
car()
self の car を返します。
cdr()
self の cdr を返します。
car と cdr しか定義されていない!!
- 16.
- 17.
- 18.
Object.cy の中身
●
他にも object.cyのファイル名があるので中
を見てみる
def(Object.init)^{}
def(Object.new)^(&args args):
obj := .child()
obj.init(*args)
obj
オブジェクトの定義そのものがマクロ
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
Cyan の欠点 3
●
If文で謎のインデントを強いられる
if( false ):
say "true"
else: # else が1文字インデントしている
say "false`"
インデントしないと変数と勘違いして
「 error: unbound variable: else 」
正直我慢できる程度に慣れる事はあっても、
生涯に渡って好きにならない自信がある
- 25.
- 26.
Cyan 総論 1
Cyan自体が生み出した新規の概念などは見
当たらないが他の言語の強力な書式をバラン
スよくまとめてある
Lisp の様に、今記述している問題を、関数や
マクロに切り出して、”対象の本質とは何
か”を切り出す力強さを持っている
Cyan=( 思案 ) という言語の名前の由来の一つ
でもある
- 27.
- 28.