v=0000;eval$s=%q~d=%!^Lcf<LK8, _@7gj*LJ=c5nM)Tp1g0%Xv.,S[<>YoP
4ZojjV)O>qIH1/n[|2yE[>:ieC "%.#% :::##" 97N-A&Kj_K_><wS5rtWk@*a+Y5
yH?b[F^e7C/56j|pmRe+:)B "##% ::##########" O98(Zh)'Iof*nm.,$C5Nyt=
PPu01Avw^<IiQ=5$'D-y? "##: ###############" g6`YT+qLw9k^ch|K'),tc
6ygIL8xI#LNz3v}T=4W "# #. .####:#######" lL27FZ0ij)7TQCI)P7u
}RT5-iJbbG5P-DHB<. " ##### # :############" R,YvZ_rnv6ky-G+4U'
$*are@b4U351Q-ug5 " #######################" 00x8RR%`Om7VDp4M5
PFixrPvl&<p[]1IJ " ############:#### %#####" EGgDt8Lm#;bc4zS^
y]0`_PstfUxOC(q " .#############:##% .## ." /,}.YOIFj(k&q_V
zcaAi?]^lCVYp!; " %% .################. #. " ;s="v=%04o;ev"%
(;v=(v-($*+[45, ":####: :##############% : " ])[n=0].to_i;)%
360)+"al$s=%q#{ "%######. ######### " ;;"%c"%126+$s<<
126}";d.gsub!(/ "##########. #######% " |\s|".*"/,"");;
require"zlib"|| "########### :######. " ;d=d.unpack"C*"
d.map{|c|n=(n|| ":#########: .######: . " )*90+(c-2)%91};
e=["%x"%n].pack " :#######% :###### #: " &&"H*";e=Zlib::
Inflate.inflate( " ######% .####% :: " &&e).unpack("b*"
)[0];22.times{|y| " ####% %### " ;w=(Math.sqrt(1-(
(y*2.0-21)/22)**(; " .###: .#% " ;2))*23).floor;(w*
2-1).times{|x|u=(e+ " %## " )[y*z=360,z]*2;u=u[
90*x/w+v+90,90/w];s[( " #. " ;y*80)+120-w+x]=(""<<
32<<".:%#")[4*u.count(( " . " ;"0"))/u.size]}};;puts\
s+";_ The Qlobe#{" "*18+ ( "# :#######" ;"Copyright(C).Yusuke End\
oh, 2010")}";exit~;_ The Qlobe Copyright(C).Yusuke Endoh, 2010
person = { first_name: 'amir', last_name: 'rajan' }
person[:first_name]
var person = new Dictionary<string, object>() { { "first_name", "amir" } }
"first_name"
some_method() && some_other_method()
some_method() || some_other_method()
person[:first_name] >> nil
people[15] >> nil
var person = people.FirstOrDefault(p => p.);
var lastName = "";
if(people[15] != null)
people[15]?.LastName
end
find_person(199238) && last_name = find_person(199238).last_name
class Logger
def debug message
puts "#{DateTime.now} DEBUG: #{message}"
end
end
logger = Logger.new
class DatabaseLogger < Logger
def debug message
# code to log to the database
end
end
class ConsoleLogger < Logger
def initialize
super
end
def debug message
# code to log to the database
end
end
class Logger
class << self
:alias :new :__new__
def self.new
return DatabaseLogger.__new__ if ENV['Logger'] == :database
ConsoleLogger.__new__
end
end
def format_message
end
end
I had to use it.
Person* person;
id person;
[person sayHelloTo: @"Other Person"];
person.sayHello "other prerson"
person.send(:sayHello, "other person");
person.sayHello()
The important point is that the name and structure of these messages is not necessarily fixed beforehand in the source code and can itself be additional information. This is an important part of what Alan Kay originally envisioned as “object oriented programming”.
@protocol XYZPieChartViewDataSource
- (NSUInteger)numberOfSegments;
- (CGFloat)sizeOfSegmentAtIndex:(NSUInteger)segmentIndex;
@optional
- (NSString *)titleForSegmentAtIndex:(NSUInteger)segmentIndex;
@end
/**
* Like RCT_EXTERN_REMAP_METHOD, but allows setting a custom JavaScript name
* and also whether this method is synchronous.
*/
#define _RCT_EXTERN_REMAP_METHOD(js_name,
method,
is_blocking_synchronous_method) \
+ (const RCTMethodInfo *)RCT_CONCAT(__rct_export__, RCT_CONCAT(js_name, RCT_CONCAT(__LINE__, __COUNTER__))) { \
static RCTMethodInfo config = {#js_name, #method,
is_blocking_synchronous_method}; \
return &config; \
}
Rails is single threaded. Spray.io is cool.
scala> def implicitPrinter(implicit str:String) = println(str)
implicitPrinter: (implicit str: String)Unit
scala> implicitPrinter
<console>:9: error: could not find implicit value for parameter str: String
implicitPrinter
scala> implicit val abra = "abrakadabra"
abra: java.lang.String = abrakadabra
scala> implicitPrinter
abrakadabra
val res = for {
r1 <- future1()
r2 <- future2()
r25 = future25()
r3 <- future3(r25)
r4 <- future4()
} yield (r1 + r2 + r3)
val firstEventL = Lens.lensu[EventContainer, Event](
(container, value) => container.copy(events = Seq(value) ++ container.events.tail), _.events.head)
val profileL = Lens.lensu[Event, Profile](
(event, value) => event.copy(profile = value), _.profile)
val reservationL = Lens.lensu[Profile, Reservation](
(profile, value) => profile.copy(reservation = value), _.reservation)
val settingAllProperties =
firstEventL =>=
{ _.copy(eventTitle = "New Title") } andThen
firstEventL >=> profileL =>=
{ _.copy(profileName = "New Profile Name") } andThen
firstEventL >=> profileL >=> reservationL =>=
{
_.copy(
reservationComments = "New Comments",
spaceReservations = Seq(
SpaceReservation(1111),
SpaceReservation(2222)))
} apply ec
val settingJustOneProperty =
firstEventL >=> profileL >=> reservationL =>=
{ _.copy(reservationComments = "New Comments") } apply ec
Simple Made Easy: https://www.infoq.com/presentations/Simple-Made-Easy Light Table: https://www.youtube.com/watch?v=H58-n7uldoU Most Beautiful Progeram Ever Written: https://www.youtube.com/watch?v=OyfBQmvr2Hc
class Animal {
constructor(name) { }
move(aDistanceOf) { }
}
class Snake extends Animal {
move(aDistanceOf) { }
}
class Horse extends Animal {
move(aDistanceOf) { }
}
let sam = new Snake("Sammy the Python");
let tom = new Horse("Tommy the Palomino");
sam.move();
tom.move();
function move(aDistanceOf){
var it = this.name || "It";
return it + " moved " + aDistanceOf + " meters.";
}
var snake = { name: "Sammy" };
var horse = { name: "Tommy" };
move.call(snake, 5);
move.call(horse, 45);
Functional JavaScript: http://leongersing.tumblr.com/post/11561298378/my-perception-of-coffeescript
That’s it. Now, I know what you’re thinking, “Leon, please, [the class oriented example] is contrived and doesn’t represent real world domains.” You’re right and so is [my function oriented example] as a result. “But you also didn’t create real domain models.” Also right, because I didn’t have do, nor would I ever want to. Therein lies my point.
Sometimes a struct is a struct and not an class. The difference that I’m desperately trying to convey in this overly simple context is that by leveraging FP over OO (he really means class oriented, not OO) one can provide not only a more dependable abstraction but when combined with JavaScript’s inherent flexibility as a language, we can achieve true referential transparency and polymorphism.
and also:
FP encourages building small functions that do not mutate state and can be bound together as needed to perform a task whereas the OO [class oriented] philosophy is to encapsulate and achieve polymorphism through interface or contract. The more dynamic your context the more OO’s [class oriented] encapsulation paradigm, as seen in the inheritance model, leaks..
function render(person, favoriteColor) {
return (
<div
data-first-name={person.firstName}
data-last-name={person.lastName}
style={{ backgroundColor: favoriteColor }}>
Hello World
</div>
);
}
(defn render (person favorite-color)
(:div
(:data-first-name (:first-name person)
:data-last-name (:last-name person))
:style (:background-color favorite-color)
"Hello World"))
<div class="section">
<p>
You walk into the shop. A midget stands behind the counter on a
stool. He occasionally props himself up with locked arms and dangles
his feet in the air.
<div>
</p>
<a style="margin: 0; padding: 0"
href="javascript:;"
onClick="buyItem()">Buy Mokébox<a>
<p style="margin: 0; padding: 0; margin-bottom: 10px, font-size: smaller">
Use this to capture Moképon.
</p>
</div>
<hr/>
<a id="back-button" href="javascript:;" onClick="goBack()">Go back.</a>
</div>
[:div.section
[:p (str "You walk into the shop. A midget stands behind the counter on a stool. "
"He occasionally props himself up with locked arms and "
"dangles his feet in the air.")]
[:div [:a {:style {:margin "0"
:padding: "0"
:href "javascript:;"
:on-click "buyItem()"}}
"Buy Mokébox"]
[:p {:style {:margin "0"
:padding "0"
:margin-bottom "10px"
:font-size "smaller"}}
"Use this to capture Moképon."]]
[:hr]
[:a#back-button {:href "javascript:;"
:on-click "goBack()"}
"Go back."]]
[‘logEverything’, [‘doWork’, [‘sayPerson’, 5, 6], [‘toString’, 7, 8]]]
[‘doWork’, [‘log’, ‘sayPerson’], [‘sayPerson’, 5, 6], [‘log’, ‘toString’], [‘toString’, 7, 8]] macro logeverything
I aquired RubyMotion.
; Declare the string constant as a global constant. @.str = private unnamed_addr constant [13 x i8] c”hello world\0A\00”
; External declaration of the puts function declare i32 @puts(i8* nocapture) nounwind
; Definition of main function define i32 @main() { ; i32()* ; Convert [13 x i8]* to i8 … %cast210 = getelementptr [13 x i8] @.str, i64 0, i64 0
; Call puts function to write out the string to stdout. call i32 @puts(i8* %cast210) ret i32 0 }
; Named metadata !1 = metadata !{i32 42} !foo = !{!1, !1}
It’s taking over the world.
C Brush Up: https://viewsourcecode.org/snaptoken/kilo/ Toy Language: https://llvm.org/docs/tutorial/ Objective C Meta Language: https://llvm.org/docs/tutorial/OCamlLangImpl1.html