Tutorial by Examples: a

Patterns annotated with a bang (!) are evaluated strictly instead of lazily. foo (!x, y) !z = [x, y, z] In this example, x and z will both be evaluated to weak head normal form before returning the list. It's equivalent to: foo (x, y) z = x `seq` z `seq` [x, y, z] Bang patterns are enabled ...
Online REPL The easiest way to get started writing Haskell is probably by going to the Haskell website or Try Haskell and use the online REPL (read-eval-print-loop) on the home page. The online REPL supports most basic functionality and even some IO. There is also a basic tutorial available which c...
A function can be defined using guards, which can be thought of classifying behaviour according to input. Take the following function definition: absolute :: Int -> Int -- definition restricted to Ints for simplicity absolute n = if (n < 0) then (-n) else n We can rearrange it using gua...
Haskell supports pattern matching expressions in both function definition and through case statements. A case statement is much like a switch in other languages, except it supports all of Haskell's types. Let's start simple: longName :: String -> String longName name = case name of ...
Maybe Maybe is a Functor containing a possibly-absent value: instance Functor Maybe where fmap f Nothing = Nothing fmap f (Just x) = Just (f x) Maybe's instance of Functor applies a function to a value wrapped in a Just. If the computation has previously failed (so the Maybe value is ...
const namedMember1 = ... const namedMember2 = ... const namedMember3 = ... export { namedMember1, namedMember2, namedMember3 }
You are right in the middle of working on a new feature, and your boss comes in demanding that you fix something immediately. You may typically want use git stash to store your changes away temporarily. However, at this point your working tree is in a state of disarray (with new, moved, and removed ...
An actor inside Service Fabric is defined by a standard .NET interface/class pair: public interface IMyActor : IActor { Task<string> HelloWorld(); } internal class MyActor : Actor, IMyActor { public Task<string> HelloWorld() { return Task.FromResult(&quot...
A VHDL program can be simulated or synthesized. Simulation is what resembles most the execution in other programming languages. Synthesis translates a VHDL program into a network of logic gates. Many VHDL simulation and synthesis tools are parts of commercial Electronic Design Automation (EDA) s...
Until recently, using android.support.v4.app.FragmentPagerAdapter would prevent the usage of a PreferenceFragment as one of the Fragments used in the FragmentPagerAdapter. The latest versions of the support v7 library now include the PreferenceFragmentCompat class, which will work with a ViewPager ...
An atomic type can be used to safely read and write to a memory location shared between two threads. A Bad example that is likely to cause a data race: #include <thread> #include <iostream> //function will add all values including and between 'a' and 'b' to 'result' void add(int...
docker run --name="test-app" --entrypoint="/bin/bash" example-app This command will override the ENTRYPOINT directive of the example-app image when the container test-app is created. The CMD directive of the image will remain unchanged unless otherwise specified: docker run -...
docker run --add-host="app-backend:10.15.1.24" awesome-app This command adds an entry to the container's /etc/hosts file, which follows the format --add-host <name>:<address>. In this example, the name app-backend will resolve to 10.15.1.24. This is particularly useful for t...
0.170.18.0 At the time of writing (July 2016) elm-reactor has been temporarily stripped of its time traveling functionality. It's possible to get it, though, using the jinjor/elm-time-travel package. It's usage mirrors Html.App or Navigation modules' program* functions, for example instead of: im...
> List.repeat 3 "abc" ["abc","abc","abc"] : List String You can give List.repeat any value: > List.repeat 2 {a = 1, b = (2,True)} [{a = 1, b = (2,True)}, {a = 1, b = (2,True)}] : List {a : Int, b : (Int, Bool)}
By default, List.sort sorts in ascending order. > List.sort [3,1,5] [1,3,5] : List number List.sort needs the list elements to be comparable. That means: String, Char, number (Int and Float), List of comparable or tuple of comparable. > List.sort [(5,"ddd"),(4,"zzz"),...
List.sortWith allows you to sort lists with data of any shape - you supply it with a comparison function. compareBools : Bool -> Bool -> Order compareBools a b = case (a,b) of (False, True) -> LT (True, False) -> GT _ -> ...
Note: this is not very efficient due to the nature of List (see Remarks below). It will be better to construct the list the "right" way from the beginning than to construct it and then reverse it. > List.reverse [1,3,5,7,9] [9,7,5,3,1] : List number
By default List.sort sorts in ascending order, with the compare function. There are two ways to sort in descending order: one efficient and one inefficient. The efficient way: List.sortWith and a descending comparison function. descending a b = case compare a b of LT -> GT ...
List.sortBy allows to use a function on the elements and use its result for the comparison. > List.sortBy String.length ["longest","short","medium"] ["short","medium","longest"] : List String -- because the lengths are: [7,5,6] It ...

Page 414 of 1099