Enviar búsqueda
Cargar
今日から使おうSmalltalk
•
14 recomendaciones
•
8,844 vistas
Sho Yoshida
Seguir
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 71
Descargar ahora
Descargar para leer sin conexión
Recomendados
今からでも遅くないSmalltalk入門
今からでも遅くないSmalltalk入門
Masashi Umezawa
Smalltalkだめ自慢
Smalltalkだめ自慢
Masashi Umezawa
Why!? Smalltalk
Why!? Smalltalk
Masashi Umezawa
例外設計における大罪
例外設計における大罪
Takuto Wada
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!
Yuji Nojima
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
Recomendados
今からでも遅くないSmalltalk入門
今からでも遅くないSmalltalk入門
Masashi Umezawa
Smalltalkだめ自慢
Smalltalkだめ自慢
Masashi Umezawa
Why!? Smalltalk
Why!? Smalltalk
Masashi Umezawa
例外設計における大罪
例外設計における大罪
Takuto Wada
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!
Yuji Nojima
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
Junya Hayashi
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Sho Yoshida
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書く
mametter
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
基礎線形代数講座
基礎線形代数講座
SEGADevTech
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
WebSocketのキホン
WebSocketのキホン
You_Kinjoh
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
parrotstudio
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
Satoshi Kubo
入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き
土岐 孝平
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
健人 井関
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
onozaty
Redmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみた
Kohei Nakamura
Smaltalk驚異の開発(私が使い続ける2012年の話)
Smaltalk驚異の開発(私が使い続ける2012年の話)
Sho Yoshida
Smalltalkと型について
Smalltalkと型について
Masashi Umezawa
Más contenido relacionado
La actualidad más candente
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
Junya Hayashi
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Sho Yoshida
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書く
mametter
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
基礎線形代数講座
基礎線形代数講座
SEGADevTech
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
WebSocketのキホン
WebSocketのキホン
You_Kinjoh
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
parrotstudio
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
Satoshi Kubo
入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き
土岐 孝平
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
健人 井関
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
onozaty
Redmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみた
Kohei Nakamura
La actualidad más candente
(20)
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書く
DockerコンテナでGitを使う
DockerコンテナでGitを使う
基礎線形代数講座
基礎線形代数講座
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
WebSocketのキホン
WebSocketのキホン
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Redisの特徴と活用方法について
Redisの特徴と活用方法について
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
Redmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみた
Destacado
Smaltalk驚異の開発(私が使い続ける2012年の話)
Smaltalk驚異の開発(私が使い続ける2012年の話)
Sho Yoshida
Smalltalkと型について
Smalltalkと型について
Masashi Umezawa
RUNNING Smalltalk - 実践Smalltalk
RUNNING Smalltalk - 実践Smalltalk
Sho Yoshida
Rust-lang
Rust-lang
Anthony Broad-Crawford
Rust 超入門
Rust 超入門
Chris Birchall
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
Sho Yoshida
Introduction of Pharo 5.0
Introduction of Pharo 5.0
Masashi Umezawa
夢のある話をしようと思ったけど、やっぱり現実の話をする
夢のある話をしようと思ったけど、やっぱり現実の話をする
Hidetsugu Takahashi
趣味でやるSmalltalk Webアプリ開発
趣味でやるSmalltalk Webアプリ開発
Kazuki Minamitani
Continuous Integration for Pharo Smalltalk - Smalltalkと継続的インテグレーション
Continuous Integration for Pharo Smalltalk - Smalltalkと継続的インテグレーション
Sho Yoshida
早わかりSmalltalk
早わかりSmalltalk
Masashi Umezawa
Rust言語紹介
Rust言語紹介
Paweł Rusin
Rust v1.0 release celebration party
Rust v1.0 release celebration party
Akira Hayakawa
Rust言語
Rust言語
健太 田上
Raft
Raft
Preferred Networks
Destacado
(15)
Smaltalk驚異の開発(私が使い続ける2012年の話)
Smaltalk驚異の開発(私が使い続ける2012年の話)
Smalltalkと型について
Smalltalkと型について
RUNNING Smalltalk - 実践Smalltalk
RUNNING Smalltalk - 実践Smalltalk
Rust-lang
Rust-lang
Rust 超入門
Rust 超入門
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
Introduction of Pharo 5.0
Introduction of Pharo 5.0
夢のある話をしようと思ったけど、やっぱり現実の話をする
夢のある話をしようと思ったけど、やっぱり現実の話をする
趣味でやるSmalltalk Webアプリ開発
趣味でやるSmalltalk Webアプリ開発
Continuous Integration for Pharo Smalltalk - Smalltalkと継続的インテグレーション
Continuous Integration for Pharo Smalltalk - Smalltalkと継続的インテグレーション
早わかりSmalltalk
早わかりSmalltalk
Rust言語紹介
Rust言語紹介
Rust v1.0 release celebration party
Rust v1.0 release celebration party
Rust言語
Rust言語
Raft
Raft
Similar a 今日から使おうSmalltalk
pi-1. プログラミング入門
pi-1. プログラミング入門
kunihikokaneko1
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
de:code 2017
ToolChainを使った次世代DevOps環境の作り方
ToolChainを使った次世代DevOps環境の作り方
Harada Kazuki
Cloud OS「Apache CloudStack」をお手軽に使ってみる方法
Cloud OS「Apache CloudStack」をお手軽に使ってみる方法
samemoon
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
NTT DATA Technology & Innovation
もろもろの AI ツールを Windows のローカル環境にインストールする手順
もろもろの AI ツールを Windows のローカル環境にインストールする手順
Hide Koba
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Masahito Zembutsu
cp-1. Microsoft Visual Studio 2019 C++ の使い方
cp-1. Microsoft Visual Studio 2019 C++ の使い方
kunihikokaneko1
あなたもできる!GASで勤怠入力Slack App構築【WESEEK Tech Conf #14】 (pert2)
あなたもできる!GASで勤怠入力Slack App構築【WESEEK Tech Conf #14】 (pert2)
WESEEKWESEEK
最低限の開発環境を整えるには
最低限の開発環境を整えるには
vi-iv
OpenCV2.2 Install Guide ver.0.5
OpenCV2.2 Install Guide ver.0.5
Tsukasa Sugiura
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門
sandai
LAMMPS クラウド活用勉強会説明資料(Rescale編) 2017/01/24
LAMMPS クラウド活用勉強会説明資料(Rescale編) 2017/01/24
Rescale Japan株式会社
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
Atomu Hidaka
po-1. プログラミング入門
po-1. プログラミング入門
kunihikokaneko1
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
Wataru NOGUCHI
Pythonを中心としたチーム開発
Pythonを中心としたチーム開発
Ryo Takahashi
Asakusa Framework スモールジョブ実行エンジン & Windows対応
Asakusa Framework スモールジョブ実行エンジン & Windows対応
apirakun
20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会
samemoon
Microsoft Tunnel 概要
Microsoft Tunnel 概要
Yutaro Tamai
Similar a 今日から使おうSmalltalk
(20)
pi-1. プログラミング入門
pi-1. プログラミング入門
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
ToolChainを使った次世代DevOps環境の作り方
ToolChainを使った次世代DevOps環境の作り方
Cloud OS「Apache CloudStack」をお手軽に使ってみる方法
Cloud OS「Apache CloudStack」をお手軽に使ってみる方法
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
もろもろの AI ツールを Windows のローカル環境にインストールする手順
もろもろの AI ツールを Windows のローカル環境にインストールする手順
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
cp-1. Microsoft Visual Studio 2019 C++ の使い方
cp-1. Microsoft Visual Studio 2019 C++ の使い方
あなたもできる!GASで勤怠入力Slack App構築【WESEEK Tech Conf #14】 (pert2)
あなたもできる!GASで勤怠入力Slack App構築【WESEEK Tech Conf #14】 (pert2)
最低限の開発環境を整えるには
最低限の開発環境を整えるには
OpenCV2.2 Install Guide ver.0.5
OpenCV2.2 Install Guide ver.0.5
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門
LAMMPS クラウド活用勉強会説明資料(Rescale編) 2017/01/24
LAMMPS クラウド活用勉強会説明資料(Rescale編) 2017/01/24
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
po-1. プログラミング入門
po-1. プログラミング入門
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
Pythonを中心としたチーム開発
Pythonを中心としたチーム開発
Asakusa Framework スモールジョブ実行エンジン & Windows対応
Asakusa Framework スモールジョブ実行エンジン & Windows対応
20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会
Microsoft Tunnel 概要
Microsoft Tunnel 概要
Más de Sho Yoshida
OpenRestyを用いてイケイケなサービスを作る方法
OpenRestyを用いてイケイケなサービスを作る方法
Sho Yoshida
Continuous Integration for Pharo Smalltalk Part 2 (Smalltalk and Travis CI)
Continuous Integration for Pharo Smalltalk Part 2 (Smalltalk and Travis CI)
Sho Yoshida
今時なウェブ開発をSmalltalkでやってみる?
今時なウェブ開発をSmalltalkでやってみる?
Sho Yoshida
Elasticsearch for Pharo Smalltalk
Elasticsearch for Pharo Smalltalk
Sho Yoshida
AWS SDK for Smalltalk
AWS SDK for Smalltalk
Sho Yoshida
How Smalltalker Works
How Smalltalker Works
Sho Yoshida
愛せよ、さもなくば捨てよ。
愛せよ、さもなくば捨てよ。
Sho Yoshida
もしイチゴ農家の園主がSmalltalkの「Seaside」(で作られたシステム)を使ってみたら
もしイチゴ農家の園主がSmalltalkの「Seaside」(で作られたシステム)を使ってみたら
Sho Yoshida
エコSmalltalk
エコSmalltalk
Sho Yoshida
Iliad or Seaside
Iliad or Seaside
Sho Yoshida
Pharo(Smalltalk)でAPI作りをはじめよう
Pharo(Smalltalk)でAPI作りをはじめよう
Sho Yoshida
Más de Sho Yoshida
(11)
OpenRestyを用いてイケイケなサービスを作る方法
OpenRestyを用いてイケイケなサービスを作る方法
Continuous Integration for Pharo Smalltalk Part 2 (Smalltalk and Travis CI)
Continuous Integration for Pharo Smalltalk Part 2 (Smalltalk and Travis CI)
今時なウェブ開発をSmalltalkでやってみる?
今時なウェブ開発をSmalltalkでやってみる?
Elasticsearch for Pharo Smalltalk
Elasticsearch for Pharo Smalltalk
AWS SDK for Smalltalk
AWS SDK for Smalltalk
How Smalltalker Works
How Smalltalker Works
愛せよ、さもなくば捨てよ。
愛せよ、さもなくば捨てよ。
もしイチゴ農家の園主がSmalltalkの「Seaside」(で作られたシステム)を使ってみたら
もしイチゴ農家の園主がSmalltalkの「Seaside」(で作られたシステム)を使ってみたら
エコSmalltalk
エコSmalltalk
Iliad or Seaside
Iliad or Seaside
Pharo(Smalltalk)でAPI作りをはじめよう
Pharo(Smalltalk)でAPI作りをはじめよう
Último
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
sugiuralab
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
sugiuralab
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
Último
(8)
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
今日から使おうSmalltalk
1.
今日から使おうSmalltalk 第26回 Smalltalk勉強会 吉田 翔 1
2.
第26回Smalltalk勉強会 Smalltalkのインストール Squeak 4.1-ja(All in
one)がおすすめ Mac, Linux, Windows全てに対応 http://swikis.ddo.jp/umejava/48 zipファイルを解凍してすぐに使える 使い方は環境編を参照 2
3.
第26回Smalltalk勉強会 Smalltalkが分からない 文法 開発環境 array :=
Array with:-1 with:1 with:100. array inject: Float infinity negated into:[:v1 :v2 | v1 max: v2 ]. 3
4.
第26回Smalltalk勉強会 Smalltalkのプログラミングの流れ Workspace,SytemBrowserを起動 プログラムを記述 プログラム実行 開発環境編 文法編 開発環境編 4
5.
基本文法編 第26回 Smalltalk勉強会 吉田 翔 5
6.
第26回Smalltalk勉強会 コメント ダブルクオーテーションで囲む "0 notNil" ダブルクオーテーションをコメントに含める場合 " このように「""」2回記述します" 6
7.
第26回Smalltalk勉強会 文の区切りと代入 文の区切り 代入(assignment) . := ピリオド コロン,イコール 昔のSmalltalkのコードではアンダーバー_ 7
8.
第26回Smalltalk勉強会 リテラル(数字) 5. 1.414. -1. 122244567. 10e7. 2r100. "2進数 " 8r12.
"8進数" 16rFF. "16進数" 8
9.
第26回Smalltalk勉強会 文字 文字列 リテラル(文字と文字列) $a "文字の前に$を付けます" $b $- 'Smalltalk' "シングルクオーテーションで囲む" "「'」を文字列に含める場合は2回続けて書く
" " 文字列結合は「,」 " 9
10.
第26回Smalltalk勉強会 リテラル シンボル 配列 #apple. #pineapple. システム内に1つしか存在しない文字列 #($a 'smalltalk' 42.19). #(#(1
2) 3). #(a b c) ===> #(#a #b #c) 要素のオブジェクトは統一しなくてもいい 10
11.
第26回Smalltalk勉強会 擬変数 true false nil self super thisContext 自身を表す メソッドの検索の際,スーパークラスのものを表す 自身実行中のコンテキスト(システムの実行状態)を表す 11
12.
第26回Smalltalk勉強会 メッセージ式 3 negated -3 オブジェクト
メッセージ オブジェクトにメッセージを送る Smalltalkのプログラム 1. 単項メッセージ式 2. 2項メッセージ式 3. キーワードメッセージ式 12
13.
第26回Smalltalk勉強会 単項メッセージ(Unary messages) 4 sqrt.
"平方根" 12 i. "虚数" 1 asFloat. "浮動小数とする" #(1 2 3) first. "最初の要素を取り出す" 引数を取らないメッセージ 13
14.
第26回Smalltalk勉強会 2項メッセージ(Binary Messages) 4 +
1. 10 / 2. 8 // 3. 1 < 2. 'Small','talk'. 記号 +, -, ,,!, /, &, =, >, ¦, <, , @を組み合わせた名前を もつメッセージ 主に数学の2項演算子(2つのデータに対する演算)を 表すためのもの 14
15.
第26回Smalltalk勉強会 キーワードメッセージ(Keyword Messages) "3番目の要素を取り出す" #($z $y
$x) at: 3. "10から100の間の数ならばtrueを返す" 11 between: 10 and: 100. 11.between(10,100) "2番目の要素をhelloに置き換える" #($a $b $c) at: 2 put: 'hello'. 1 to: 10 by: 2 do:[:v | Transcript cr; show:v ]. 引数を取るメッセージのうち, 2項メッセージ以外. メッセージの終わりにはコロン(:)が必ず付く 15
16.
第26回Smalltalk勉強会 メッセージの優先順位 四則演算の優先順位がない. 優先順位を付けるには括弧を付ける. 単項 > 2項
> キーワード 基本は左優先順 単項,2項,キーワードメッセージが, 1つの文に含まれていた場合には以下の優先順位で実行 16
17.
第26回Smalltalk勉強会 メッセージの優先順位(例) 基本は左優先 単項 > 2項
> キーワード 3 + 4 sqrt (3 + 4) sqrt 1 2 21 17
18.
第26回Smalltalk勉強会 練習問題 3 + 4
* 5. 3 + 4 sqrt. 50 + 4 sqrt between: 10 and: 100. 実行順序と実行結果を考えましょう 18
19.
第26回Smalltalk勉強会 ブロック block := [:x
:y | x + y]. block value: 1 value: 2. block valueWithArguments: #(3 4) 主に制御構造に用いられる 任意の時点で実行可能なプログラムの固まり •function(x){x + 1}のようなもの •(lambda (x) (+ x 1)) 実行する際には,引数の数に応じて value,value:等を送信する 19
20.
第26回Smalltalk勉強会 カスケード Transcript show: 'Hello '; cr; show:'Squeak'. Transcript
show: 'Hello '. Transcript cr. Transcript show: 'Squeak'. 先頭オブジェクトに対してメッセージを連続的に 送信する際に用いる ; セミコロンを用いる 20
21.
第26回Smalltalk勉強会 リターン ^ 値を返す キャレット ^ 1 +
2. ^ true. 21
22.
第26回Smalltalk勉強会 制御文(条件分岐) Float infinity >
0 ifTrue:[ Transcript show:'Yes!'. ] ifFalse:[ Transcript show: ' NO... ' ]. 22
23.
第26回Smalltalk勉強会 制御文(繰り返し) 1 to: 10
by: 2 do:[:v | Transcript cr;show:v ]. | i | "一時変数" i := 1. [i < 10] whileTrue:[:v | Transcript cr; show:v. i := i + 2. ]. for(int i=1; i<=10; i=i+2) int i=1; while(i<10;){ i=i+2; } 23
24.
第26回Smalltalk勉強会 制御文(繰り返し) #(1 2 3)
do:[:v | Transcript cr; show:v ]. 3 timesRepeat:[ Transcript show:‘Hello’]. 24
25.
第26回Smalltalk勉強会 Smalltalkのポイント 変数名にアンダーバーやダラーは使えない 擬変数には代入できない 算術演算の時は優先順位を注意する whileTrue:はブロックオブジェクトに送る 配列の添字は1からはじまる 25
26.
開発環境編 第26回 Smalltalk勉強会 吉田 翔 26
27.
第26回Smalltalk勉強会 ワールドメニュー(World menu) 背景(ワールド)をクリック 開き方 27
28.
第26回Smalltalk勉強会 Smalltalkの開発環境 ワークスペース(Workspace) トランスクリプト(Transcript) システムブラウザ(System Browser) インスペクタ(Inspector) メソッドファインダ(Method Finder) デバッガ(Debugger) 覚えて欲しいツール 28
29.
第26回Smalltalk勉強会 ワークスペース(Workspace) プログラムを記述するためのエディタ 開き方 ワールドメニュー (World menu)の開く 開く
メニュー ワークスペース(Workspace) 29
30.
第26回Smalltalk勉強会 トランスクリプト(Transcript) 実行結果を出力するためのウィンドウ 開き方 ワールドメニュー (World menu)の開く 開く
メニュー トランスクリプト(Transcript) 30
31.
第26回Smalltalk勉強会 使いたくてたまらない人のために Hello Smalltalkを表示してみましょう 必要なツール ワークスペース トランスクリプト Transcript show:
'Hello Smalltalk'. ワークスペースに以下のコードを記述 トランスクリプトにHello Smalltalkを出力する 31
32.
第26回Smalltalk勉強会 プログラムの実行方法 do it 1.実行するプログラム を選択して ALT(右ク リック)+
クリック 2.「式を評価」を選択 使い方 32
33.
第26回Smalltalk勉強会 プログラム結果の出力方法 print it Transcriptに出力 1 +
3. Transcript show: 1 + 3. 「式を表示」を選択 33
34.
第26回Smalltalk勉強会 システムブラウザ クラス検索,クラス定義を行なう 開き方 ワールドメニュー (World menu)の開く 開く
メニュー システムブラウザ(Browser) 34
35.
第26回Smalltalk勉強会 インスペクタ オブジェクトを調べるツール xをインスペクタで確認 オブジェクトを選択,ALT(右クリック)押し ながらクリック. 「式をインスペクト」を選択 35
36.
第26回Smalltalk勉強会 インスペクタを使ってみよう "配列の要素をランダムで取り出す" x := #(#(7
9) #(3 1)) atRandom. x. "インスペクト" x inspect. "Do It" どちらの配列がxに代入されたか調べてみる または 36
37.
第26回Smalltalk勉強会 メソッド・ファインダ(Method Finder) メソッド検索をするツール ワールドメニュー (World
menu)の開く 開く メニュー メソッド・ファインダ(method finder) 37
38.
第26回Smalltalk勉強会 ノーティファイア デバッカを開く エラーの際に開く警告表示 最初は,中止ボタン(Abandon)でも構わない 38
39.
第26回Smalltalk勉強会 デバッガ(Debugger) 使い方は「自由自在Squeak プログラミング」を参考にしてください 39
40.
第26回Smalltalk勉強会 ショートカット Mac Windows ワークスペース を開く CMD +
k ALT + k トランスクリプト を開く CMD + t ALT + t システムブラウザ を開く CMD + b ALT + b do it CMD + d ALT + d print it CMD + p ALT + p CMD(ALT) + ピリオド(.) 強制終了(割り込み) 40
41.
第26回Smalltalk勉強会 終了方法 ワールドメニューの「保存して終了」または「終了」 実行中のプログラム(プログラムの実行状態)を イメージに保存できる 再び起動した際に,前回の状態が再現される 41
42.
第26回Smalltalk勉強会 イメージの保存について 種類 内容 保存 (save) 現在の状態を現在使用しているイメージに保存 別名保存 (save as) 別のイメージに保存に状態を保存.イメージ名 を決定する.保存後は,新たに作成したイメー ジ画面が表示 新しい版として保存 (save
as new version) 自動的にイメージ名にバージョン番号が付加さ れる 保存して終了 (save and quit) 現在の状態を現在使用しているimageに 保存して終了 イメージとはSmalltalkのオブジェクトを ファイルにダンプしたもの 42
43.
何か作りましょう BMI計算ツールを作ろう 43
44.
第26回Smalltalk勉強会 BMI BMI = 体重[kg]
(身長[m] 身長[m]) 標準体重 = 身長 身長 x 22 日本肥満学会によると BMIが22の場合が標準体重 BMIが25以上の場合を肥満 BMIが18.5未満である場合をやせ 9//2. “商” 92. “余り” 44
45.
第26回Smalltalk勉強会 UIを使ったツールにするために h := FillInTheBlank
request:'身長(cm)は?' initialAnswer:'0'. “戻り値はByteStringなので 変換する” h asInteger . 45
46.
第26回Smalltalk勉強会 UIを使ったツールにするために Utilities informUser: '計算中' !
during: [(Delay forSeconds: 1) wait]. 1秒間Squeakの画面上に計算中と表示する 46
47.
第26回Smalltalk勉強会 | h w
bmi sw | h := FillInTheBlank request: '身長(cm)は?' initialAnswer: '0'. h asInteger <= 0 ifTrue:[ ^false ]. w := FillInTheBlank request: '体重(kg)は?' initialAnswer: '0'. h asInteger <= 0 ifTrue:[ ^false ]. bmi := w // ( ( h*h ) //10000 ). sw := ( h*h*22 ) // 10000 Utilities informUser: '計算中' ! during: [(Delay forSeconds: 1) wait ]. 一部 47
48.
(おまけ) クラスとインスタンス編 第26回 Smalltalk勉強会 吉田 翔 48
49.
第26回Smalltalk勉強会 1.クラスカテゴリ作成 2.クラス名作成 3.メソッドカテゴリ作成 4.メソッド作成 クラス定義 クラス定義はクラスブラウザを用いる 49
50.
第26回Smalltalk勉強会 クラス定義 - クラスカテゴリ作成 1.
ALT(右クリック)を 押しながらクリック 2.「項目を追加」を選択 50
51.
第26回Smalltalk勉強会 クラス定義 スーパークラス名 subclass: #クラス名 instanceVariableNames:
'インスタンス変数名1 インスタンス変数名2' classVariableNames: 'クラス変数名1 クラス変数名2' poolDictionaries: 'プール辞書名' category: 'クラスカテゴリ' 必ずスーパークラスを持つ クラスブラウザのコードペインに記述 51
52.
第26回Smalltalk勉強会 クラス定義 クラス定義の例 52
53.
第26回Smalltalk勉強会 クラス定義の反映 accept ショートカット : CMD(ALT)
+ s •記述した定義等を保存(変更通知) •クラス定義,メソッド定義を追加・変更の際行なう •ALT(右クリック) + 了解 で行なう 初めてのacceptの際には右のフォーム が表示されるのでイニシャルを入力 53
54.
第26回Smalltalk勉強会 メソッドの定義 messageSelectorAndArgumentNames "comment stating purpose
of message" | temporary variable names | statements メソッドのテンプレートの意味 1行目はメソッド名 2行目はコメント 4行目は一時変数の定義 5行目以降はメソッドの動作記述 54
55.
第26回Smalltalk勉強会 インスタンスの生成 x := Human
new. クラスにnewメッセージを送信 55
56.
(おまけ)基本クラス編 第26回 Smalltalk勉強会 吉田 翔 56
57.
第26回Smalltalk勉強会 基本クラスの紹介 Number Block Collectionクラス, イテレータ等 Bag, Set Array,
OrderedCollection Dictionary 文字列(String) Stream 他にも色々なクラスがあります 57
58.
(おまけ)応用編 第26回 Smalltalk勉強会 吉田 翔 58
59.
第26回Smalltalk勉強会 Workspaceの内容の保存 をクリックし,save contents to
file...を選択 59
60.
第26回Smalltalk勉強会 ソースの管理方法(Squeak) imageごと csファイル(今回は紹介しない) stファイル Monticello(今回は紹介しない) Metacello(第23回Smalltalk勉強会) 60
61.
第26回Smalltalk勉強会 イメージ単位のバックアップ imageフォルダをコピー 61
62.
第26回Smalltalk勉強会 stファイルでの保存 プロジェクト名,クラス名またはメソッド 名で右クリックしファイルアウト 62
63.
第26回Smalltalk勉強会 stファイルの読み込み 開き方 ワールドメニュー (World menu)の開く 開く
メニュー ファイル・リスト ファイル・リストからstファイルを読み込む 63
64.
第26回Smalltalk勉強会 stファイルの読み込み ファイル・リストよりstファイルを指定し, ファイルインする 64
65.
第26回Smalltalk勉強会 Monticello FTP,HTTPサーバに保存することが可能 65
66.
おわりに 66
67.
第26回Smalltalk勉強会 現在チュートリアル作成中 1. Squeakインストール 2. Squeakの基本操作 3.
基本文法 4. クラス定義等 5. 基本クラス 5.1.Number 5.2.Block 5.3.Collectionクラス, イテレータ等 5.4.文字列(String) 5.5.Stream 6. デバック 7. 例外処理 8. ツール 9. 探索の旅 10.スレッド処理 11.Morph ? 12.パッケージ管理 13.Web 13.1.Seaside 13.2.Iliad 13.3.Magma 13.4.JSON, XML 14.正規表現 15.Traits 他にも要望があればどうぞ 67
68.
Smalltalkをもっと勉強したい人のために 68
69.
第26回Smalltalk勉強会 おすすめ参考文献 1) 自由自在Squeakプログラミング 2) Smalltalkで学ぶオブジェクト指向プログラミングの本質 3)
Squeak by Example http://www.squeakbyexample.org/ 4) Smalltalkイディオム 5) ケント・ベックのSmalltalkベストプラクティス・パターン 書籍 69
70.
第26回Smalltalk勉強会 おすすめ文献 Cincom Smalltalk Daily(動画)
http:// www.cincomsmalltalk.com/userblogs/cincom/blogView? content=smalltalk_daily Smalltalkのtは小文字です http://d.hatena.ne.jp/sumim/ どう書く?org http://ja.doukaku.org/ サイト 70
71.
第26回Smalltalk勉強会 ML Squeak-ja http://www.smalltalk.jp/mailman/ listinfo/squeak-ja SML http://www.smalltalk.jp/SML/ Squeak-dev
http:// lists.squeakfoundation.org/mailman/listinfo/ squeak-dev Pharo http://lists.gforge.inria.fr/cgi-bin/ mailman/listinfo/pharo-users 71
Descargar ahora