我想知道我是否可以超载尖括号'<'和'>'类似的东西:
from django.urls import path
from .views import subjects, units, lessons
urlpatterns = [
path('subjects/', subjects, name='subjects'),
path('units/<slug:slug>', units, name='units'),
path('lessons/<slug:slug>', lessons, name='lessons'),
]
我知道我可以过载&#39;&lt;&amp;&gt;&#39;像运营商一样:
<div class="blog-posts">
<div class="row text-center">
{% for item in all_units %}
<div class="col-sm-4 wow fadeInUp animated" data-wow-duration="1000ms" data-wow-delay="400ms"
style="visibility: visible;animation-duration: 1000ms;animation-delay: 400ms;animation-name: fadeInUp; margin-bottom: 15px">
<div class="post-thumb">
<a href="#"><img class="img-responsive" src="/static/img/blog/1.jpg" alt=""></a>
</div>
<div class="entry-header">
<h3><a href="{% url 'units' item.slug %}">{{ item.name }}</a></h3>
<span class="date">{{ item.created }}</span>
</div>
<div class="entry-content">
<p>{{ item.description|truncatechars:120 }}</p>
</div>
</div>
{% endfor %}
</div>
</div>
答案 0 :(得分:8)
不,你真的不能这样做。哈斯克尔不是阿格达。 Haskell仅识别()
,[]
和{}
括号。 ()
仅用于元组类型和分组。 {}
用于各种语法目的,没有一个可以控制。 []
通常用于列表。您可以使用OverloadedLists
和/或MonadComprehensions
来影响列表语法的解释方式,但只能以有限的方式与您请求的内容相关联。没有办法说服Haskell <
或>
是括号。您可能会做的唯一想法是使用Template Haskell处理您自己的语法,但这会增加其自身的语法开销。