duplicates = multiple editions
A Classical Introduction to Modern Number Theory, Kenneth Ireland Michael Rosen
A Classical Introduction to Modern Number Theory, Kenneth Ireland Michael Rosen
import annotation.unchecked.uncheckedVariance | |
/** The trait of things that can be compared safely */ | |
trait Equals[-T] { | |
/** A witness of Equals' type parameter. Should only used for | |
* the constraint in EqlDecorator, hence, @uncheckedVariance should not be a problem. | |
*/ | |
type EqualsDomain = T @uncheckedVariance |
/dev/sdaX
and the second RAID Device is /dev/sdb
/
gets mirrored, Node goes down when sda failshttp://www.jerf.org/iri/post/2908 | |
http://mwotton.github.com/hs_gbu/ | |
http://reddit.com/r/haskell/comments/y6i7d/do_we_have_real_world_examples_of_where_static/ | |
http://reddit.com/r/haskell/comments/12e3a0/the_good_the_bad_and_the_ugly_haskell_in/ | |
http://blog.codersbase.com/2010/09/composability-laziness-testing-and.html | |
https://www.fpcomplete.com/user/imalsogreg/functional-programming-elevator-pitch | |
http://evincarofautumn.blogspot.com/2012/07/so-i-write-compilers-for-living-now.html | |
http://www.reddit.com/r/haskell/comments/2gz7s1/please_point_me_at_an_eloquent_paper_or_post_on/ |
(by @andrestaltz)
So you're curious in learning this new thing called (Functional) Reactive Programming (FRP).
Learning it is hard, even harder by the lack of good material. When I started, I tried looking for tutorials. I found only a handful of practical guides, but they just scratched the surface and never tackled the challenge of building the whole architecture around it. Library documentations often don't help when you're trying to understand some function. I mean, honestly, look at this:
Rx.Observable.prototype.flatMapLatest(selector, [thisArg])
Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence.
(() => { | |
final class $anon extends org.apache.spark.sql.catalyst.expressions.MutableProjection { | |
def <init>() = { | |
super.<init>(); | |
() | |
}; | |
private[this] var mutableRow: org.apache.spark.sql.catalyst.expressions.MutableRow = new org.apache.spark.sql.catalyst.expressions.GenericMutableRow(1); | |
def target(row: org.apache.spark.sql.catalyst.expressions.MutableRow): org.apache.spark.sql.catalyst.expressions.MutableProjection = { | |
mutableRow = row; | |
this |
module Test | |
import Provider | |
import Database | |
import Queries | |
%language TypeProviders | |
%link C "sqlite3api.o" |
I like Learn You a Haskell as a reference and cheat-sheet but I found it a little slow for learning Haskell.
Here's my recommended order for just learning Haskell:
http://www.seas.upenn.edu/~cis194/lectures.html Brent Yorgey's course is the best I've found so far and replaces both Yann Esposito's HF&H and the NICTA course. This course is particularly valuable as it will not only equip you to write Haskell but also help you understand parser combinators.
Real World Haskell is available online. (Thanks bos!)
I recommend RWH as a reference (thick book). The chapters for parsing and monads are great for getting a sense for where monads are useful. Other people have said that they've liked it a lot. Perhaps a good follow-up for practical idioms after you've got the essentials of Haskell down?
/** | |
* <b>Fixed Point Combinator is:</b> | |
* Y = λf.(λx.f (x x)) (λx.f (x x)) | |
* | |
* <b>Proof of correctness:</b> | |
* Y g = (λf . (λx . f (x x)) (λx . f (x x))) g (by definition of Y) | |
* = (λx . g (x x)) (λx . g (x x)) (β-reduction of λf: applied main function to g) | |
* = (λy . g (y y)) (λx . g (x x)) (α-conversion: renamed bound variable) | |
* = g ((λx . g (x x)) (λx . g (x x))) (β-reduction of λy: applied left function to right function) | |
* = g (Y g) (by second equality) [1] |
Open the postgresql.conf config file:
$> mate /usr/local/var/postgres/postgresql.conf
Uncomment the line with 'log_destination' and set it to 'syslog'
log_destination = 'syslog'
Open the syslog config: