Created
January 30, 2016 14:36
-
-
Save khafatech/53b90835a35b7beb52af to your computer and use it in GitHub Desktop.
racket, haskell list functions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<table> | |
<thead> | |
<tr class="header"> | |
<th style="text-align: right;">Haskell</th> | |
<th style="text-align: left;">Racket</th> | |
<th style="text-align: center;">notes</th> | |
</tr> | |
</thead> | |
<tbody> | |
<tr class="odd"> | |
<td style="text-align: right;"><code>null</code></td> | |
<td style="text-align: left;"><code>null?</code> or <code>empty?</code></td> | |
<td style="text-align: center;">not to be confused with <code>null</code>/<code>empty</code></td> | |
</tr> | |
<tr class="even"> | |
<td style="text-align: right;"><code>map</code>, <code>zipWithN</code></td> | |
<td style="text-align: left;"><code>map</code></td> | |
<td style="text-align: center;">Haskell's <code>map</code> is just <code>zipWith1</code>, after all</td> | |
</tr> | |
<tr class="odd"> | |
<td style="text-align: right;"><code>length</code></td> | |
<td style="text-align: left;"><code>length</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="even"> | |
<td style="text-align: right;"><code>length . filter</code></td> | |
<td style="text-align: left;"><code>count</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="odd"> | |
<td style="text-align: right;"><code>filter</code></td> | |
<td style="text-align: left;"><code>filter</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="even"> | |
<td style="text-align: right;"><code>filter . not</code></td> | |
<td style="text-align: left;"><code>filter-not</code></td> | |
<td style="text-align: center;">also, <code>negate</code> can be used to inverse a predicate</td> | |
</tr> | |
<tr class="odd"> | |
<td style="text-align: right;"><code>lookup</code></td> | |
<td style="text-align: left;"><code>assoc</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="even"> | |
<td style="text-align: right;"><code>foldr</code></td> | |
<td style="text-align: left;"><code>foldr</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="odd"> | |
<td style="text-align: right;"><code>foldl</code></td> | |
<td style="text-align: left;"><code>foldl</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="even"> | |
<td style="text-align: right;"><code>all</code></td> | |
<td style="text-align: left;"><code>andmap</code></td> | |
<td style="text-align: center;">polyvariadic</td> | |
</tr> | |
<tr class="odd"> | |
<td style="text-align: right;"><code>any</code></td> | |
<td style="text-align: left;"><code>ormap</code></td> | |
<td style="text-align: center;">polyvariadic</td> | |
</tr> | |
<tr class="even"> | |
<td style="text-align: right;"><code>head</code></td> | |
<td style="text-align: left;"><code>car</code> or <code>first</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="odd"> | |
<td style="text-align: right;"><code>(!! 1)</code> ... <code>(!! 9)</code></td> | |
<td style="text-align: left;"><code>second</code> ... <code>tenth</code></td> | |
<td style="text-align: center;">aka <code>cadr</code>, <code>caddr</code>, <code>cadddr</code> and <code>caddddr</code></td> | |
</tr> | |
<tr class="even"> | |
<td style="text-align: right;"><code>!!</code></td> | |
<td style="text-align: left;"><code>list-ref</code></td> | |
<td style="text-align: center;">clumsy name hints that it isn't needed very often</td> | |
</tr> | |
<tr class="odd"> | |
<td style="text-align: right;"><code>tail</code></td> | |
<td style="text-align: left;"><code>cdr</code> or <code>rest</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="even"> | |
<td style="text-align: right;"><code>:</code></td> | |
<td style="text-align: left;"><code>cons</code></td> | |
<td style="text-align: center;">since lists are tuples, it's also <code>,</code></td> | |
</tr> | |
<tr class="odd"> | |
<td style="text-align: right;"><code>last</code></td> | |
<td style="text-align: left;"><code>last</code></td> | |
<td style="text-align: center;">not in <code>racket/base</code></td> | |
</tr> | |
<tr class="even"> | |
<td style="text-align: right;"><code>reverse</code></td> | |
<td style="text-align: left;"><code>reverse</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="odd"> | |
<td style="text-align: right;"><code>intersperse</code>, <code>intercalate</code></td> | |
<td style="text-align: left;"><code>add-between</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="even"> | |
<td style="text-align: right;"><code>permutations</code></td> | |
<td style="text-align: left;"><code>permutations</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="odd"> | |
<td style="text-align: right;"><code>++</code></td> | |
<td style="text-align: left;"><code>append</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="even"> | |
<td style="text-align: right;"><code>concat</code></td> | |
<td style="text-align: left;"><code>append*</code></td> | |
<td style="text-align: center;">deep version of <code>concat</code> is called <code>flatten</code></td> | |
</tr> | |
<tr class="odd"> | |
<td style="text-align: right;"><code>sum</code></td> | |
<td style="text-align: left;"><code>apply +</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="even"> | |
<td style="text-align: right;"><code>product</code></td> | |
<td style="text-align: left;"><code>apply *</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="odd"> | |
<td style="text-align: right;"><code>maximum</code></td> | |
<td style="text-align: left;"><code>apply max</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="even"> | |
<td style="text-align: right;"><code>minimum</code></td> | |
<td style="text-align: left;"><code>apply min</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="odd"> | |
<td style="text-align: right;"><code>maximumOn</code></td> | |
<td style="text-align: left;"><code>argmax</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="even"> | |
<td style="text-align: right;"><code>minimumOn</code></td> | |
<td style="text-align: left;"><code>argmin</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="odd"> | |
<td style="text-align: right;"><code>replicate</code></td> | |
<td style="text-align: left;"><code>make-list</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="even"> | |
<td style="text-align: right;"><code>take</code></td> | |
<td style="text-align: left;"><code>take</code></td> | |
<td style="text-align: center;">there's also <code>take-right</code></td> | |
</tr> | |
<tr class="odd"> | |
<td style="text-align: right;"><code>drop</code></td> | |
<td style="text-align: left;"><code>drop</code> or <code>list-tail</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="even"> | |
<td style="text-align: right;"><code>takeWhile</code></td> | |
<td style="text-align: left;"><code>takef</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="odd"> | |
<td style="text-align: right;"><code>dropWhile</code></td> | |
<td style="text-align: left;"><code>dropf</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="even"> | |
<td style="text-align: right;"><code>splitAt</code></td> | |
<td style="text-align: left;"><code>split-at</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="odd"> | |
<td style="text-align: right;"><code>span</code></td> | |
<td style="text-align: left;"><code>splitf-at</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="even"> | |
<td style="text-align: right;"><code>elem</code></td> | |
<td style="text-align: left;"><code>member</code></td> | |
<td style="text-align: center;">that's where everything-but-<code>#f</code>-is-true proves useful</td> | |
</tr> | |
<tr class="odd"> | |
<td style="text-align: right;"><code>find</code></td> | |
<td style="text-align: left;"><code>memf</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="even"> | |
<td style="text-align: right;"><code>partition</code></td> | |
<td style="text-align: left;"><code>partition</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="odd"> | |
<td style="text-align: right;"><code>nub</code>[<code>By</code>,<code>On</code>]</td> | |
<td style="text-align: left;"><code>remove-duplicates</code></td> | |
<td style="text-align: center;">controlled with optional arguments</td> | |
</tr> | |
<tr class="even"> | |
<td style="text-align: right;"><code>delete</code></td> | |
<td style="text-align: left;"><code>remove</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="odd"> | |
<td style="text-align: right;"><code>\\</code></td> | |
<td style="text-align: left;"><code>remove*</code></td> | |
<td style="text-align: center;">removes <em>all</em> occurences, not only the first ones</td> | |
</tr> | |
<tr class="even"> | |
<td style="text-align: right;"><code>sort</code>[<code>By</code>,<code>On</code>]</td> | |
<td style="text-align: left;"><code>sort</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="odd"> | |
<td style="text-align: right;"><code>mapM_</code></td> | |
<td style="text-align: left;"><code>for-each</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="even"> | |
<td style="text-align: right;">list ranges</td> | |
<td style="text-align: left;"><code>range</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
<tr class="odd"> | |
<td style="text-align: right;">random shuffle</td> | |
<td style="text-align: left;"><code>shuffle</code></td> | |
<td style="text-align: center;"></td> | |
</tr> | |
</tbody> | |
</table> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment