使用Emacs Slime,如何访问REPL中最后一个表达式返回的对象或值?
在ipython中它是_
所以如果返回值是我的预期,我可以将它保存在变量中。
Slime有类似的东西吗?
答案 0 :(得分:8)
Common Lisp定义了一些绑定前一个表单及其值的变量。这些是:
*
, **
, ***
最新的主要值。/
, //
, ///
最近的值(每个值都是一个列表)。+
, ++
, +++
最近的表格。每次在REPL中评估表单时都会绑定这些变量(这就是Slime正在做的事情)。 <div class="main">
<div class="banner">
<img src="<?php echo Yii::app()->request->baseurl;?>/img/stat1.jpg" style="width: 1170px">
</div><!--banner ending here--><br>
<div class="container" style="background-color:#7AC5CD">
<div class="row">
<div class="col-md-6">
<h3 style='text-align:center; text-decoration: underline;font-family: sans-serif; color: black'>Top 5 Ngo's month wise</h3>
<br>
<?php
for($month = 1 ; $month <=12 ; $month++)
{
'<br>' ;
$dateObj = DateTime::createFromFormat('!m', $month);
$monthName = $dateObj->format('F');
echo "<h3 style='text-align:center;color:black;'> " . $monthName . "</h3>";
$user=UserRateReviewNgo::model()->findAll(array(
'condition' => 'YEAR(date_created)=:year and MONTH(date_created)=:month',
'params' => array(':year'=>2016, ':month'=>$month),
'select'=>'DISTINCT rate,ngo_id',
'order'=>'rate DESC',
'limit' => 5
));
$val = 100;
foreach($user as $show) {
$model = Ngo::model()->findByAttributes(array('id'=>$show->ngo_id,));
if (isset($model)) {
echo "<div><h4><a href='".Yii::app()->request->baseUrl."/ngo/ngopage?id=$model->id'><p style='color:black;font-family:Lucida Sans Unicode;'>" . $model->ngo_name ."</p></a></h4></div>
<div class='progress'>
<div class='progress-bar progress-bar-danger progress-bar-striped active' role='progressbar'
aria-valuenow='" . $val ."' aria-valuemin='0' aria-valuemax='100' style='width: ". $val ."%;'>" . $val .
"</div>
</div>";
$val = $val -21.23;
} }}
?>
</div>
<div class="col-md-5 col-md-offset-1">
<h3 style='text-align:center; text-decoration: underline;font-family: sans-serif; color: black'>Top 5 Ngo's of the year</h3>
<br>
<?php // the for the year
$val = 100;
foreach($userYear as $show)
{
$model = Ngo::model()->findByAttributes(array('id'=>$show->ngo_id,));
if (isset($model))
{
echo "<div><h4><a href='".Yii::app()->request->baseUrl."/ngo/ngopage?id=$model->id'><p style='color:black; font-family:Lucida Sans Unicode;'>" . $model->ngo_name ."</p></a></h4></div>
<div class='progress'>
<div class='progress-bar progress-bar-success progress-bar-striped active' role='progressbar'
aria-valuenow='" . $val ."' aria-valuemin='0' aria-valuemax='100' style='width: ". $val ."%;'>" . $val .
"</div>
</div>";
$val = $val -17.96;
}
}
?>
</div>
</div>
</div><!--main ending here-->
</div><!--Container ending here-->
,*
和/
绑定了之前的主要值,值和表单。 +
,**
和//
绑定到++
,*
,/
的先前值。 //
,***
和///
绑定了+++
,**
,//
的先前值。
Lisp中的函数可能返回多个值;因此,保留主要(第一)值的++
与保存所有值列表的*
之间的差异。
答案 1 :(得分:6)
除了verdammelts答案,您还可以复制和粘贴repl中的对象。有关示例,请参阅this文章中的第三张图片(我写的)。有关详细信息,请查看Slime手册的presentations部分。