+yield in comprehensions

    
      
diff --git a/pythonetc/README.md b/pythonetc/README.md
index 45d7ac0..fc7c3c6 100644
--- a/pythonetc/README.md
+++ b/pythonetc/README.md
@@ -55,3 +55,4 @@ More:
 1. ./zipapp.md                  (13 October 2020, 18:00)
 1. ./new-init.md                (15 October 2020, 18:00)
 1. ./sentinel.md                (20 October 2020, 18:00)
+1. ./yield-compr.md             (22 October 2020, 18:00)
diff --git a/pythonetc/yield-compr.md b/pythonetc/yield-compr.md
new file mode 100644
index 0000000..8f6126f
--- /dev/null
+++ b/pythonetc/yield-compr.md
@@ -0,0 +1,30 @@
+Accidentally, `yield` can be used in generator expressions and comprehensions:
+
+```python
+[(yield i) for i in 'ab']
+#  at 0x7f2ba1431f48>
+
+list([(yield i) for i in 'ab'])
+# ['a', 'b']
+
+list((yield i) for i in 'ab')
+# ['a', None, 'b', None]
+```
+
+This is because `yield` can be used in any function (turning it into a generator) and comprehensions are compiled into functions:
+
+```python
+>>> dis.dis("[(yield i) for i in range(3)]")                                                                                                                                             
+0 LOAD_CONST     0 ( ...>)
+2 LOAD_CONST     1 ('')
+4 MAKE_FUNCTION  0
+...
+```
+
+This produces a warning in Python 3.7 and will raise `SyntaxError` in python 3.8+. However, `yield` inside `lambda` still can be used:
+
+```python
+a = lambda x: (yield x)
+list(a(1))
+# [1]
+```