<!DOCTYPE html >
<html>
        <head>
<META NAME="ROBOTS" CONTENT="NOINDEX">
<link rel="canonical" href="https://ignite.apache.org/releases/1.0.0/scaladoc/scalar/index/index-r.html" />
          <title>Ignite Scalar</title>
          <meta name="description" content="Ignite Scalar" />
          <meta name="keywords" content="Ignite Scalar" />
          <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
          
      <link href="../lib/ref-index.css" media="screen" type="text/css" rel="stylesheet" />
      <script type="text/javascript" src="../lib/jquery.js"></script>
    
        <link rel='shortcut icon' href='http://gridgain.com/wp-content/uploads/2014/09/favicon.ico'/>
<link type='text/css' rel='stylesheet' href='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shCore.css'/>
<link type='text/css' rel='stylesheet' href='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shThemeDefault.css'/>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shCore.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shLegacy.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushJava.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushPlain.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushJScript.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushBash.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushXml.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushScala.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushGroovy.js'></script>

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-61232409-1', 'auto');
  ga('send', 'pageview');

</script></head>

        <body><div class="entry">
      <div class="name">Run</div>
      <div class="occurrences"><a href="../org/apache/ignite/scalar/pimps/ScalarProjectionPimp.html" class="extype" name="org.apache.ignite.scalar.pimps.ScalarProjectionPimp">ScalarProjectionPimp</a> </div>
    </div><div class="entry">
      <div class="name">reduce</div>
      <div class="occurrences"><a href="../org/apache/ignite/scalar/lang/ScalarReducer.html" class="extype" name="org.apache.ignite.scalar.lang.ScalarReducer">ScalarReducer</a> </div>
    </div><div class="entry">
      <div class="name">reduce$</div>
      <div class="occurrences"><a href="../org/apache/ignite/scalar/pimps/ScalarProjectionPimp.html" class="extype" name="org.apache.ignite.scalar.pimps.ScalarProjectionPimp">ScalarProjectionPimp</a> </div>
    </div><div class="entry">
      <div class="name">reduceAsync$</div>
      <div class="occurrences"><a href="../org/apache/ignite/scalar/pimps/ScalarProjectionPimp.html" class="extype" name="org.apache.ignite.scalar.pimps.ScalarProjectionPimp">ScalarProjectionPimp</a> </div>
    </div><div class="entry">
      <div class="name">reduceSafe</div>
      <div class="occurrences"><a href="../org/apache/ignite/scalar/pimps/ScalarProjectionPimp.html" class="extype" name="org.apache.ignite.scalar.pimps.ScalarProjectionPimp">ScalarProjectionPimp</a> </div>
    </div><div class="entry">
      <div class="name">reducer2DotScala</div>
      <div class="occurrences"><a href="../org/apache/ignite/scalar/ScalarConversions.html" class="extype" name="org.apache.ignite.scalar.ScalarConversions">ScalarConversions</a> </div>
    </div><div class="entry">
      <div class="name">reducer3DotScala</div>
      <div class="occurrences"><a href="../org/apache/ignite/scalar/ScalarConversions.html" class="extype" name="org.apache.ignite.scalar.ScalarConversions">ScalarConversions</a> </div>
    </div><div class="entry">
      <div class="name">reducerDotScala</div>
      <div class="occurrences"><a href="../org/apache/ignite/scalar/ScalarConversions.html" class="extype" name="org.apache.ignite.scalar.ScalarConversions">ScalarConversions</a> </div>
    </div><div class="entry">
      <div class="name">remoteNodes$</div>
      <div class="occurrences"><a href="../org/apache/ignite/scalar/pimps/ScalarProjectionPimp.html" class="extype" name="org.apache.ignite.scalar.pimps.ScalarProjectionPimp">ScalarProjectionPimp</a> </div>
    </div><div class="entry">
      <div class="name">remove$</div>
      <div class="occurrences"><a href="../org/apache/ignite/scalar/pimps/ScalarCachePimp.html" class="extype" name="org.apache.ignite.scalar.pimps.ScalarCachePimp">ScalarCachePimp</a> </div>
    </div><div class="entry">
      <div class="name">removeAll$</div>
      <div class="occurrences"><a href="../org/apache/ignite/scalar/pimps/ScalarCachePimp.html" class="extype" name="org.apache.ignite.scalar.pimps.ScalarCachePimp">ScalarCachePimp</a> </div>
    </div><div class="entry">
      <div class="name">removeOpt$</div>
      <div class="occurrences"><a href="../org/apache/ignite/scalar/pimps/ScalarCachePimp.html" class="extype" name="org.apache.ignite.scalar.pimps.ScalarCachePimp">ScalarCachePimp</a> </div>
    </div><div class="entry">
      <div class="name">run</div>
      <div class="occurrences"><a href="../org/apache/ignite/scalar/lang/ScalarAbsClosure.html" class="extype" name="org.apache.ignite.scalar.lang.ScalarAbsClosure">ScalarAbsClosure</a> </div>
    </div><div class="entry">
      <div class="name">run$</div>
      <div class="occurrences"><a href="../org/apache/ignite/scalar/pimps/ScalarProjectionPimp.html" class="extype" name="org.apache.ignite.scalar.pimps.ScalarProjectionPimp">ScalarProjectionPimp</a> </div>
    </div><div class="entry">
      <div class="name">runAsync$</div>
      <div class="occurrences"><a href="../org/apache/ignite/scalar/pimps/ScalarProjectionPimp.html" class="extype" name="org.apache.ignite.scalar.pimps.ScalarProjectionPimp">ScalarProjectionPimp</a> </div>
    </div><div class="entry">
      <div class="name">runSafe</div>
      <div class="occurrences"><a href="../org/apache/ignite/scalar/pimps/ScalarProjectionPimp.html" class="extype" name="org.apache.ignite.scalar.pimps.ScalarProjectionPimp">ScalarProjectionPimp</a> </div>
    </div><table style="padding: 0px 10px 10px 10px; width: 100%" border="0">
                                        <tr>
                                            <td>
                                                <nobr>Ignite&#153; - Scalar DSL, ver. <strong>1.0.0</strong></nobr>
                                                <br>
                                                <a target=_blank href="https://incubator.apache.org/projects/ignite.html"><nobr>2015 Copyright &#169; Apache Software Foundation</nobr></a>
                                            </td>
                                        </tr>
                                        </table><script type='text/javascript'>SyntaxHighlighter.all();dp.SyntaxHighlighter.HighlightAll('code');</script>
</body>

      </html>