Skip to content

Instantly share code, notes, and snippets.

@askucher
Created January 16, 2015 20:04
Show Gist options
  • Select an option

  • Save askucher/80fec18aa064960c3e42 to your computer and use it in GitHub Desktop.

Select an option

Save askucher/80fec18aa064960c3e42 to your computer and use it in GitHub Desktop.
Try livescript
<html><head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LiveScript - a language which compiles to JavaScript</title>
<meta name="description" content="LiveScript is a language which compiles to JavaScript. It has a straightforward mapping to JavaScript and allows you to write expressive code devoid of repetitive boilerplate. While LiveScript adds many features to assist in functional style programming, it also has many improvements for object oriented and imperative programming.">
<link rel="canonical" href="http://livescript.net">
<link rel="icon" type="image/png" href="images/icon.png">
<link href="bootstrap/themes/cerulean.bootstrap.min.css" rel="stylesheet">
<link href="google-code-prettify/prettify.css" rel="stylesheet">
<link href="styles.css" rel="stylesheet">
<script id="twitter-wjs" src="//platform.twitter.com/widgets.js"></script><script type="text/javascript" async="" src="http://www.google-analytics.com/ga.js"></script><script>
if(window.location.host && window.location.host !== "localhost") {
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-7402515-5']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
}
</script>
<script type="text/javascript" src="chrome-extension://aadgmnobpdmgmigaicncghmmoeflnamj/ng-inspector.js"></script></head>
<body data-spy="scroll" data-twttr-rendered="true">
<div class="site container-fluid">
<div class="row-fluid side-row">
<div class="span12 compiler">
<div class="compiler-box">
<div id="compiler-close-button">×</div>
<div class="github-buttons">
<iframe id="twitter-widget-0" scrolling="no" frameborder="0" allowtransparency="true" src="http://platform.twitter.com/widgets/tweet_button.a8867d06719745ebf3f9c8b2ae835b17.en.html#_=1421438452604&amp;count=horizontal&amp;dnt=false&amp;id=twitter-widget-0&amp;lang=en&amp;original_referer=http%3A%2F%2Flivescript.net%2F&amp;related=gkzahariev%3AThe%20Creator&amp;size=m&amp;text=LiveScript%20-%20functional%20CoffeeScript&amp;url=http%3A%2F%2Flivescript.net%2F&amp;via=gkzahariev" class="twitter-share-button twitter-tweet-button twitter-share-button twitter-count-horizontal" title="Twitter Tweet Button" data-twttr-rendered="true" style="width: 109px; height: 20px;"></iframe>
<iframe src="http://ghbtns.com/github-btn.html?user=gkz&amp;repo=LiveScript&amp;type=watch&amp;count=true" allowtransparency="true" frameborder="0" scrolling="0" width="120px" height="20px"></iframe>
<i style="display: none;" class="icon-resize-small action-compiler-fullscreen" title="Escape fullscreen"></i>
</div>
<textarea placeholder="Enter LiveScript here"></textarea>
<div class="actions">
<button class="btn btn-primary" data-action="compile" title="Convert LiveScript to JavaScript">Compile</button>
<button class="btn" data-action="run" title="Run compiled JavaScript">Run</button>
<button class="btn" data-action="ast" title="Abstract Syntax Tree">AST</button>
<button class="btn" data-action="tokens" title="Tokenization of input">Tokens</button>
<button class="btn" data-action="lex" title="Same as tokens, but skipping rewriting">Lex</button>
</div>
</div>
<div class="compiler-output"><div title="const autocorrect = (value)->
| !value? or value.to-string!.length is 0 => 0
| value.to-string!.index-of(\.) is -1 => value
| otherwise =>
const parts = value.to-string!.split \.
const first = if parts[0].length is 0 then 0 else parts[0]
const second = if parts[1].length is 0 then &quot;&quot; else (\, + parts[1])
(first + second) |> parse-float
autocorrect &quot;0.234&quot;
">
<h3>compile<span class="close" title="Close">×</span></h3>
<pre class="prettyprint lang-js"><span class="com">//&nbsp;Generated&nbsp;by&nbsp;LiveScript&nbsp;1.3.1</span><br><span class="kwd">var</span><span class="pln">&nbsp;autocorrect</span><span class="pun">;</span><br><span class="pln">autocorrect&nbsp;</span><span class="pun">=</span><span class="pln">&nbsp;</span><span class="kwd">function</span><span class="pun">(</span><span class="pln">value</span><span class="pun">){</span><br><span class="pln">&nbsp;&nbsp;</span><span class="kwd">var</span><span class="pln">&nbsp;parts</span><span class="pun">,</span><span class="pln">&nbsp;first</span><span class="pun">,</span><span class="pln">&nbsp;second</span><span class="pun">;</span><br><span class="pln">&nbsp;&nbsp;</span><span class="kwd">switch</span><span class="pln">&nbsp;</span><span class="pun">(</span><span class="kwd">false</span><span class="pun">)</span><span class="pln">&nbsp;</span><span class="pun">{</span><br><span class="pln">&nbsp;&nbsp;</span><span class="kwd">case</span><span class="pln">&nbsp;</span><span class="pun">!(</span><span class="pln">value&nbsp;</span><span class="pun">==</span><span class="pln">&nbsp;</span><span class="kwd">null</span><span class="pln">&nbsp;</span><span class="pun">||</span><span class="pln">&nbsp;value</span><span class="pun">.</span><span class="pln">toString</span><span class="pun">().</span><span class="pln">length&nbsp;</span><span class="pun">===</span><span class="pln">&nbsp;</span><span class="lit">0</span><span class="pun">):</span><br><span class="pln">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="kwd">return</span><span class="pln">&nbsp;</span><span class="lit">0</span><span class="pun">;</span><br><span class="pln">&nbsp;&nbsp;</span><span class="kwd">case</span><span class="pln">&nbsp;value</span><span class="pun">.</span><span class="pln">toString</span><span class="pun">().</span><span class="pln">indexOf</span><span class="pun">(</span><span class="str">'.'</span><span class="pun">)</span><span class="pln">&nbsp;</span><span class="pun">!==</span><span class="pln">&nbsp;</span><span class="pun">-</span><span class="lit">1</span><span class="pun">:</span><br><span class="pln">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="kwd">return</span><span class="pln">&nbsp;value</span><span class="pun">;</span><br><span class="pln">&nbsp;&nbsp;</span><span class="kwd">default</span><span class="pun">:</span><br><span class="pln">&nbsp;&nbsp;&nbsp;&nbsp;parts&nbsp;</span><span class="pun">=</span><span class="pln">&nbsp;value</span><span class="pun">.</span><span class="pln">toString</span><span class="pun">().</span><span class="pln">split</span><span class="pun">(</span><span class="str">'.'</span><span class="pun">);</span><br><span class="pln">&nbsp;&nbsp;&nbsp;&nbsp;first&nbsp;</span><span class="pun">=</span><span class="pln">&nbsp;parts</span><span class="pun">[</span><span class="lit">0</span><span class="pun">].</span><span class="pln">length&nbsp;</span><span class="pun">===</span><span class="pln">&nbsp;</span><span class="lit">0</span><br><span class="pln">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="pun">?</span><span class="pln">&nbsp;</span><span class="lit">0</span><br><span class="pln">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="pun">:</span><span class="pln">&nbsp;parts</span><span class="pun">[</span><span class="lit">0</span><span class="pun">];</span><br><span class="pln">&nbsp;&nbsp;&nbsp;&nbsp;second&nbsp;</span><span class="pun">=</span><span class="pln">&nbsp;parts</span><span class="pun">[</span><span class="lit">1</span><span class="pun">].</span><span class="pln">length&nbsp;</span><span class="pun">===</span><span class="pln">&nbsp;</span><span class="lit">0</span><br><span class="pln">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="pun">?</span><span class="pln">&nbsp;</span><span class="str">""</span><br><span class="pln">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="pun">:</span><span class="pln">&nbsp;</span><span class="str">','</span><span class="pln">&nbsp;</span><span class="pun">+</span><span class="pln">&nbsp;parts</span><span class="pun">[</span><span class="lit">1</span><span class="pun">];</span><br><span class="pln">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="kwd">return</span><span class="pln">&nbsp;parseFloat</span><span class="pun">(</span><br><span class="pln">&nbsp;&nbsp;&nbsp;&nbsp;first&nbsp;</span><span class="pun">+</span><span class="pln">&nbsp;second</span><span class="pun">);</span><br><span class="pln">&nbsp;&nbsp;</span><span class="pun">}</span><br><span class="pun">};</span><br><span class="pln">autocorrect</span><span class="pun">(</span><span class="str">"0.234"</span><span class="pun">);</span></pre>
</div><div title="<- (do)
const autocorrect = (value)->
| !value? or value.to-string!.length is 0 => 0
| value.to-string!.index-of(\.) is -1 => value
| otherwise =>
const parts = value.to-string!.split \.
const first = if parts[0].length is 0 then 0 else parts[0]
const second = if parts[1].length is 0 then &quot;&quot; else (\, + parts[1])
(first + second) |> parse-float
autocorrect &quot;0.234&quot;">
<h3>run<span class="close" title="Close">×</span></h3>
<pre class="prettyprint lang-js">0</pre>
</div>
</div>
</div>
</div>
<div class="row-fluid content-row">
</div>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
<script src="jquery-1.8.3.min.js"></script>
<script src="bootstrap/js/bootstrap.js"></script>
<script src="bootstrap/js/bootstrap-scrollspy.js"></script>
<script src="google-code-prettify/prettify.js"></script>
<script src="lang-ls-1.3.0.js"></script>
<script src="underscore-min.js"></script>
<script src="prelude-browser-min-1.1.1.js"></script>
<script src="livescript-1.3.1.js"></script>
<script src="site.js"></script>
</div></body></html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment