Haskell is a functional language & very different from imperative langauges such as python,ruby,c++..etc . It is also called declarative language, the reason is simple one just describe the problem in the program instead of instructions on how to solve the problem .

Why Haskell ?

It’s just not the haskell , this is about functional language , equal importance is for the Scala . The main context for functional langauge is involvement of “Academia” , which other imperative language fails to bridge . It so much fun to learn mathematics and science using functional langauge .


Syntax might seems very unconventional to conventional programmers , but it’s just for the good . Functional programming discourages mutable variable & does not allow reassignment to variable.

Haskel limelight:

"-- " is used for comments
let this = [ 1,23,42,97] -- 'this' represents variable name for the list
length this  -- length is a function
				--notice while passing arguments no brackets are used
let start = head this -- return the first element of list

let latter = tail this -- return list apart from head

let access = this !! 2 -- '!!' used to access element 2 tell the possition.
						--	ofcourse indexing begins with "0"

null this --null is function 'this ' act as argument will return true if argument is null

let loop = repeat 4 --repeat act as infinite loop and generate an infinte list
					--infinity concept is just kept in mind
let slice = take 2 this --slice first two elements from the list
let duplicate  = replicate 2 5  --finite loop for generating argument 'n' times

let append = x ++ y -- (++) appends two lists one after another

let two_dim = [[1,4,5],[2,9,7],[1,2,3]] --syntax for two dimensional list

let concatenation = concat two_dim --this would reduce two dimensional list to one dimensional by concatenating each sublist to single list

Well if you reached so far , won’t you like to evaluate yourself .

expandList :: [Int] -> [Int]
expandList lst = if null lst then [] else (replicate (head lst) (head lst)) ++ expandList(tail lst)

You have to guess the purpose of above function .

Put it in comment section .

Internet Quote

“Genius are full of doubts while stupid are full of confidence”.

That’s true and but isn’t that is unfair ,people judge you just by confidence . One quick way to gain confidence is : “Do what you are afraid of ?”. Whether it is to prepare for a speech “ Do a mock up speech in front of friends?” Be it a algorithm problem “Just ask someone else for help if stuck but don’t put it on tomorrow !” or Be it making a Blogging site: “Just do it . Refactor it later”.

One shouldn’t wait for perfection . Iterate later . And Let keep it short that way .

#Purpose of blogging

Writing helps. Chalking down ideas helps.

Github can land you in trouble if you don’t know some hacks of it .

  • For example using a hack ,one can add any collaborator to repository without acknowledgement of the collaborator . Yes , any collaborator. The commit wil appear as if that person just contributed to the code base.

How ?

git -config user.name <any_user_in_the_world>
git -config user.email <email_of_that_user>

so now when you push the user would not be you but the user you specified.

  • Apart from that one can also host website without getting tracked or traced ,and that too for free.

  • One more bad trick is changing git commit time , which is very misleading for bad purpose . One can check gitcheatsheet here.

Octopress is derived from jekyll itself . It is very much automated with commands but it is mainly for blogging.

    rake new_post["escalating from octopress to jekyll"]

but in jekyll

    touch 2014-04-19-escalating-from-octopress-to-jekyll

#why jekyll ? Jekyll because it has super power . Jekyll can handle having post and pages for the website , while the octopress is only able to handle only post .

thats one only no ?

instead of

rake deploy

one uses

jekyll build

and push directly to github along with markdown files , which is very handy feature incase one lost blog . It can be regenerated again.

Not to mention the awesome liquid tags . and emoji <h2 id="planning-does-not-work-while-judging-does">Planning Does Not Work While Judging Does</h2>


Planning includes others people actions, well that can change instantaneously . So the plan gets nowhere. Is that what you want ? NO.

Judging part includes you as an integral part. Well you can trust yourself more than anybody else yourself.

Planning also sounds more like a evil intention. Judging either goes right or wrong . That’s all.

Goal is same but paths are different . Choose the right one.


#what superpower-jekyll got ?

  1. Behind the scene jekyll generates the html code which github.io pages can understand .

  2. Jekyll is also the wizard behind handling gh-pages on github i.e the github pages can recognize if the sites is build in jekyll so it will handle it in jekyll gem way .

  3. The best thing one can mix HTML with markdown .

4.More over it , it build with hackers tendency i.e code for everything.

#best place to learn jekyll ?

Official documentation is the best @ jekyll docs.