Can a Julia named parameter be required to be present?
<p>In Ruby, I can require an argument both (1) appear, and (2) have a parameter name:</p>

<pre><code>&gt;&gt; def f(x:)
&gt;&gt;   x + 1
&gt;&gt; end

&gt;&gt; f()
ArgumentError: missing keyword: x 
&gt;&gt; f(2)
ArgumentError: wrong number of arguments (given 1, expected 0)
&gt;&gt; f(x:7)
=&gt; 8
</code></pre>

<p>That is, I <em>have</em> to pass the argument, <em>and</em> I <em>have</em> to supply the associated parameter name.</p>

<p>I can do the same in Python:</p>

<pre><code>&gt;&gt;&gt; def f(*, x):
...   return x + 1
... 
&gt;&gt;&gt; f()
TypeError: f() missing 1 required keyword-only argument: 'x'
&gt;&gt;&gt; f(3)
TypeError: f() takes 0 positional arguments but 1 was given
&gt;&gt;&gt; f(x=7)
8
</code></pre>

<p>And, for good measure, even Swift can do this:</p>

<pre><code>1&gt; func f(x: Int) -&gt; Int {return x + 1}
2&gt; f()
error: missing argument for parameter 'x' in call
2&gt; f(3)
error: missing argument label 'x:' in call
2&gt; f(x:7)
$R0: Int = 8
</code></pre>

<p>But I cannot figure out how to do this in <strong>Julia</strong>. It seems that keyword arguments, as they are called, must take default parameters. Is this correct, or is there a way to simulate the Ruby and Python examples above?</p>