Tutorial by Examples: g

The easiest way to create a custom data type in Haskell is to use the data keyword: data Foo = Bar | Biz The name of the type is specified between data and =, and is called a type constructor. After = we specify all value constructors of our data type, delimited by the | sign. There is a rule in...
Value constructors are functions that return a value of a data type. Because of this, just like any other function, they can take one or more parameters: data Foo = Bar String Int | Biz String Let's check the type of the Bar value constructor. :t Bar prints Bar :: String -> Int -> Foo...
Type constructors can take one or more type parameters: data Foo a b = Bar a b | Biz a b Type parameters in Haskell must begin with a lowercase letter. Our custom data type is not a real type yet. In order to create values of our type, we must substitute all type parameters with actual types. Be...
Most JVMs have an option to set the maximum heap size e.g. -Xmx64m -Xmx8g In Java 1.0 to 1.2 you could use -mx64m and this is still available on some JVMs for backward compatibility (E.g. Oracle JVM). There are a few common misconceptions about this setting. It doesn't set the heap size...
A lot of Vim users find the Esc too hard to reach, and end up finding another mapping that's easy to reach from the home row. Note that Ctrl-[ may be equivalent to Esc on an English keyboard, and is much easier to reach. jk inoremap jk <ESC> This one is really easy to trigger; just smash...
This is the normal HTML table structure <style> table { width: 100%; } </style> <table> <tr> <td> I'm a table </td> </tr> </table> You can do same implementation like this <style> .table-...
A Stopwatch instance can measure elapsed time over several intervals with the total elapsed time being all individual intervals added together. This gives a reliable method of measuring elapsed time between two or more events. Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); double d =...
We're defining a robust version of a function that reads the HTML code from a given URL. Robust in the sense that we want it to handle situations where something either goes wrong (error) or not quite the way we planned it to (warning). The umbrella term for errors and warnings is condition Functio...
The simple answer, when asking how to use threads in Python is: "Don't. Use processes, instead." The multiprocessing module lets you create processes with similar syntax to creating threads, but I prefer using their convenient Pool object. Using the code that David Beazley first used to...
Cython is an alternative python interpreter. It uses the GIL, but lets you disable it. See their documentation As an example, using the code that David Beazley first used to show the dangers of threads against the GIL, we'll rewrite it using nogil: David Beazley's code that showed GIL threading ...
;Sends the keystroke for the letter "a" every 3 seconds. #Persistent SetTimer, SendLetterA, 3000 return SendLetterA() { Send, a }
This is an example of something that would have been straight up impossible with labels. If you execute the same label multiple times at the same time and they rely on variables that are being defined within them, they very likely interfere and cause unexpected behavior. Here is how to do it with f...
Consider the following example: type Company struct { Name string Location string } Hide/Skip Certain Fields To export Revenue and Sales, but hide them from encoding/decoding, use json:"-" or rename the variable to begin with a lowercase letter. Note that this prevents ...
If we have this dictionary: set alpha {alice {items {}} bob {items {}} claudia {items {}} derek {items {}}} And want to add "fork" and "peanut" to Alice's items, this code won't work: dict lappend alpha alice items fork peanut dict get $alpha alice # => items {} items f...
There are two ways to register a background page in the extension manifest. The scripts property In the common case, a background page doesn't require any HTML markup. We can register these kinds of background pages using the scripts property. In this case, a background page will be generated...
The sort algorithm sorts a sequence defined by two iterators. This is enough to sort a built-in (also known as c-style) array. C++11 int arr1[] = {36, 24, 42, 60, 59}; // sort numbers in ascending order sort(std::begin(arr1), std::end(arr1)); // sort numbers in descending order sort(std::b...
thinky is a lightweight node.js ORM for RethinkDB. First you need to have RethinkDB running on your server. Then install the thinky.io npm package into your project. npm install --save thinky Now import thinky into your model file. const thinky = require('thinky)(); const type = thinky.type ...
defmodule ATest do use ExUnit.Case [{1, 2, 3}, {10, 20, 40}, {100, 200, 300}] |> Enum.each(fn {a, b, c} -> test "#{a} + #{b} = #{c}" do assert unquote(a) + unquote(b) = unquote(c) end end) end Output: . 1) test 10 + 20 = 40 (Test.Test) t...
With ASP.NET Core the Microsoft team also introduced the Options pattern, which allows to have strong typed options and once configured the ability to inject the options into your services. First we start with a strong typed class, which will hold our configuration. public class MySettings { ...
p "This is %s" % "foo" # => "This is foo" p "%s %s %s" % ["foo", "bar", "baz"] # => "foo bar baz" p "%{foo} == %{foo}" % {:foo => "foo" } # => "foo == foo" See String...

Page 289 of 693